我有一个任务,它由 3 个并发的自定义(相互递归)进程组成。我需要以某种方式让它在计算机上执行,但是任何尝试将需求转换为程序代码的尝试都失败了,因为第一次迭代产生了 3^3 个实体和 27^2 个交叉关系,但它需要至少实现几次迭代尝试程序是否可以正常工作。
所以我决定放弃尝试理解整个系统并将问题形式化,现在想将其映射到硬件以生成算法并运行。语言无关紧要(甚至可能直接用于机器/组装?)。
我以前从未做过类似的事情,所以我搜索的所有主题,如算法综合、软硬件协同设计等,都提到硬件模型作为解决方案生成的后半部分(除了问题模型),但我从未见过. 整个作品应该是这样的:
我还不知道描述了什么级别的 硬件模型,所以无法决定必须如何将问题模型形式化以适应硬件模型层。
例如,目标系统可能包含 CPU 和 GPGPU,假设目标解决方案有 2 个并发进程。系统必须决定哪个进程在 CPU 上运行,哪个在 GPGPU 上运行。最高级别的解决方案可能来自将进程的计算强度与目标硬件进行比较,CPU 约为 300,GPGPU 约为 50。
但是一个正常的模型必须更完整,至少有缓存层次结构、内存访问批量大小等。
另一个例子是实现k-ary 树. k * i + c
综合算法可以通过计算/( i - 1 ) / k
或存储直接指针来处理父母和孩子- 取决于computations per memory latency
比率。
我在哪里可以获得要使用的硬件模型或数据?现在任何硬件都足够了——只是看看它的样子——以后获得现代处理器、GPGPU 和常见异构集群的模型会很棒。
制造商是否提供此类型号?描述他们的系统如何以任何形式语言工作。