Использование многоядерности.

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Аватара пользователя
FeodoR
новенький
Сообщения: 59
Зарегистрирован: 16.04.2010 12:11:34
Откуда: MSK, ЮАО
Контактная информация:

Использование многоядерности.

Сообщение FeodoR »

Немного тупой вопрос...

Возможно ли в FPC закреплять потоки за конкретным ядром/процессором?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Кроссплатформенной поддержки этого в FPC точно нет.
Аватара пользователя
FeodoR
новенький
Сообщения: 59
Зарегистрирован: 16.04.2010 12:11:34
Откуда: MSK, ЮАО
Контактная информация:

Сообщение FeodoR »

Хотя бы в Линухе (Debian 5.0.3 (i386) or МСВС 3.0)...

Была идея (так как Core2Duo...Quad Xeon) посадить на один проц вычислительную задачу, чтобы она спокойно считалась себе в реальном времени (с шагом интегрирования 10..20 мс), а на второй - опрос плат, сетевой обмен... Проще говоря, обмен по шине.

Но вот как проконтролировать, что потоки выполняются на разных процессорах (ядрах)...

Собственно из этой идеи вопрос и родился.
SII
новенький
Сообщения: 64
Зарегистрирован: 24.06.2007 17:15:09
Откуда: Зеленоград

Сообщение SII »

Из процедуры потока вызывать АПИ системы, чтобы привязать поток к конкретному процессору. Не кроссплатформенно, но работать должно.
Аватара пользователя
FeodoR
новенький
Сообщения: 59
Зарегистрирован: 16.04.2010 12:11:34
Откуда: MSK, ЮАО
Контактная информация:

Сообщение FeodoR »

Кроссплатформенность решается IFDEF'ами :)

Буквально 10 минут назад испытал лёгкий шок: в МСВС 3.0 ни в одном из поставляемых с ней ядер нет потоков, доступных пользователю. То есть FPC (2.5.1 r15153), Laz 0.9.29 r24790 спокойно встают, компилирую всё (за что я люблю Паскаль), но как только дело доходит до потоков - Cannot Create Thread. А нам по хорошему под ней аттестовываться. :(

Так что буду решать проблему в комплексе. С соответствующими feedback в базу знаний.
Ответить