Установить конкретное ядро ​​процессора для задачи в GNAT - PullRequest
1 голос
/ 02 мая 2011

Я использую Gnat и хочу установить конкретное ядро ​​выполнения для одной из задач.Проблема в том, что я не смог найти никаких документов по этому вопросу.Несмотря на добавление System.Multiprocessor, как уже упоминалось здесь и здесь , компилятор продолжает говорить, что это не предопределенный библиотечный модуль.Это происходит, даже если я добавлю флаг -gnat12.Любые предложения о том, как я могу использовать эту функцию? `

Ответы [ 2 ]

2 голосов
/ 04 мая 2011

Gnat предоставляет специфическую для компилятора прагму Task_Info , которая связывает блок данных Task_Info_Type с данной задачей.Среди полей этого блока данных есть одно, которое используется для установки бесконечности процессора.Точное определение System.Task_Info.Task_Info_Type зависит от платформы, поэтому вам необходимо просмотреть пакет System.Taskinfo для платформы, на которой работает ваш исполняемый файл.

(Очевидно, это не переносимое решение, котороеидет с Ada 2012.)

Бесстыдный плагин: см. фреймворк Magpie , размещенный на SourceForge, для распределения работы между многоядерными ЦП и пример настройки привязки к процессору.

1 голос
/ 03 мая 2011

Вам придется подождать, пока ваш компилятор не поддержит пакет.

...