我正在使用Gnat并希望为其中一个任务设置特定的执行核心。问题是我找不到任何关于此的文档。尽管添加了System.Multiprocessor,如提到的here和here,编译器仍然说它不是预定义的库单元。即使我添加-gnat12
标志,也会发生这种情况。关于如何使用该功能的任何建议?“
答案 0 :(得分:2)
Gnat提供特定于编译器的Task_Info pragma,它将Task_Info_Type数据块与给定任务相关联。该数据块的字段中有一个用于设置处理器无穷大。 System.Task_Info.Task_Info_Type的确切定义因平台而异,因此您需要查看运行可执行文件的平台的System.Taskinfo包。
(显然这不是便携式解决方案,Ada 2012即将推出。)
无耻插件:请参阅SourceForge上托管的Magpie框架,以便在多核CPU之间分配工作,以获取设置处理器亲和力的示例。
答案 1 :(得分:1)
您必须等到编译器支持该软件包。