1

我正在使用 Gnat 并想为其中一项任务设置一个特定的执行核心。问题是我找不到任何文档。尽管添加了 System.Multiprocessor,正如这里这里所提到的,编译器一直说它不是预定义的库单元。即使我添加-gnat12标志也会发生这种情况。关于如何使用该功能的任何建议?

4

2 回答 2

2

Gnat 提供了特定于编译器的Task_Info pragma,它将 Task_Info_Type 数据块与给定任务相关联。该数据块的字段之一是用于设置处理器无穷大。System.Task_Info.Task_Info_Type 的确切定义因平台而异,因此您需要查看运行可执行文件的平台的 System.Taskinfo 包。

(显然,这不是 Ada 2012 附带的便携式解决方案。)

无耻插件:请参阅 SourceForge 托管的Magpie框架,以在多核 CPU 之间分配工作,以获取设置处理器亲和性的示例。

于 2011-05-04T00:44:51.753 回答
1

您将不得不等到您的编译器支持该软件包。

于 2011-05-03T06:38:12.377 回答