09.11.2005, 11:44 | #21 |
Участник
|
Цитата:
Сообщение от itfs
to AndyD Теоритчески я согласен, существуют предпосылки для того, чтобы процесс отдавал на исполнение потоки различным процессорам. Допустим, что проблема синхронзации так или иначе решена. Но как факт, архитектура AOS-а такова, что не отдает выполнение пользовательских потоков другим процессорам, за исключением исполнения batch-ей.
С уважением, itfs. С уважением, itfs. Если два пользователя подключены к двухпроцессорному AOS, то их потоки будут выполняться на разных процессорах. Ограничение - привязка процесса AOS к одному процессору и приоритет потоков. Если выполнение задачи разбить на несколько потоков, то они будут выполняться каждых на разных процессорах (с учетом ограничения)
__________________
Axapta v.3.0 sp5 kr2 |
|
09.11.2005, 12:29 | #22 |
Участник
|
Вставлю свои 5 копеек:
По умолчанию Windows 2000 использует нежесткую привязку (soft affmity) потоков к процессорам Это означает, что при прочих равных условиях, система пытается выполнять поток на том же процессоре, на котором он работал в последний раз При таком подходе можно повторно использовать данные, все еще хранящиеся в кэше процессора В архитектуре NUMA (Non Uniform MemoryAccess) машина состоит из нескольких плат, на каждой из которых находятся четыре процессора и отдельный банк памяти. Отдельный погок может выпол няться на любом из этих процессоров Для жесткой привязки потоков процесса к конкретному процессору используется функция SetProcessAffinityMask. Есть и обратная GetProcessAffinityMask - которая позволяет определить используется ли жесткая привязка к процессору. В случае с АОС-ом я такую привязку не нашел. Соответственно планировщик сам выберет на каких процессорах какие потоки выполнять. |
|
09.11.2005, 22:13 | #23 |
Участник
|
Цитата:
Сообщение от lagr221374
К сожалению не все так просто, что-то пытался народ использовать не получилось
Пояснение: Сначала запускается один поток, выполняется 5 секунд. Запускающий поток ожидает окончания его работы. После этого запускается другой поток (10 секунд). После его окончания запускается одновременно два потока - один 15 секунд, другой - 20 секунд. Ожидается окончание их выполнения. После этого работа заканчивается. Удобно наблюдать на многопроцессорном сервере загрузку процессоров.
__________________
Axapta v.3.0 sp5 kr2 |
|
10.11.2005, 11:19 | #24 |
Гость
|
Ок. Спасибо.
|
|