Одноядерные и двуядерные процессоры
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Одноядерные и двуядерные процессоры - 2007-11-22 22:56:28.456666
|
|
|
01qwerty10
Сообщений: 8
Оценки: 0
Присоединился: 2007-10-09 18:06:50.883333
|
Есть ли разница программить на Asm`e под Одноядерные и двуядерные процессоры
|
|
|
RE: Одноядерные и двуядерные процессоры - 2007-11-22 23:41:37.013333
|
|
|
BinZo
Сообщений: 230
Оценки: 0
Присоединился: 2006-12-02 20:29:14.373333
|
Ни разу не пробовал, но имхо ничем. Просто программу делишь на несколько функций-потоков, а затем используешь API-функцию:
HANDLE CreateThread(LPSECURE_ATTRIBUTES secAttr,
SIZE_T stack_size,
[b]LPTHREAD_START_ROUTINE thread_function[/b],
LPVOID param,
DWORD flags,
LPDWORD threadID); "thread_function" - адрес функции-потока ЗЫ а, да кстати. Прототип для всех функций-потоков: DWORD WINAPI funcName(LPVOID param);
|
|
|
RE: Одноядерные и двуядерные процессоры - 2007-11-23 11:27:14.356666
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
DWORD SetThreadAffinityMask ( HANDLE hThread, // handle to the thread of interest DWORD dwThreadAffinityMask // a thread affinity mask ); выбирает на каком процессоре будет выполняться тред
|
|
|
RE: Одноядерные и двуядерные процессоры - 2007-12-11 10:38:00.263333
|
|
|
crbunny
Сообщений: 223
Оценки: 0
Присоединился: 2006-06-22 21:20:01
|
Если не вдаваться в подробности - ничем. Поцесссор уже и так перегружен фишками вроде кэша, ассациотивной памяти, предсказания переходов, предвыполнения операций, чтобы с чистой совестью забивать на то что процессора стало два.
|
|
|
RE: Одноядерные и двуядерные процессоры - 2008-01-09 04:38:20.843333
|
|
|
MrCMuT
Сообщений: 16
Оценки: 0
Присоединился: 2007-07-17 20:26:56.050000
|
вроде бы нету…
|
|
|
RE: Одноядерные и двуядерные процессоры - 2008-01-09 05:00:57.880000
|
|
|
furiousangel
Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
|
Если ты не собираешься использовать преимущества двухядерных камней то ничем отличаться не будет, но если же хочешь, то естественно работу можно немного ускорить, если потоки равномерно распределять между ядрами. В С\С++ есть пакеты с помощью которых кодинг для двух ядер сводится к вызову CreateThread (если точнее CreateRemoteThread), а распределение между ядрами выполняют все те же пакеты (как утверждают часто не оптимально). Но на асме все сложнее имхо (не доводилось кодить под два ядра).Как минимум еще нужна функция, приведенная redsh. Могу сказать что недавно в Х писали про два ядра. Там прада рассматривался вариант кодинга на Сях, но думаю что то полезное себе вынесешь.
|
|
|
RE: Одноядерные и двуядерные процессоры - 2008-01-09 05:39:11.366666
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: furiousangel Как минимум еще нужна функция, приведенная redsh. она как раз не нужна. Если же кажется что это не так, то скорее всего ты чего-то не то делаешь. Не дело user-space приложения думать о количестве процессоров и о том, кто на каком из них выполняется. То есть бывают исключения, например, может быть полезно знать количество процессоров, чтобы знать на сколько потоков распараллеливать задачу. А уж думать на каком процессоре выполняться – вообще глупость. Какая разница? Пускай хоть на всех по очереди, операционной системе виднее. Для того она и операционная система. Из-за этого её и терпят прикладные программисты. А то нафига она нужна? На асме для smp писать то же самое, что и на C/C++/Delphi/Java/всё-что-угодно. С одним "но": если пишем под многозадачную ОС, которая умеет SMP. Если пишем в досе, и хочем своей программой все процессоры (ну или ядра) загрузить, то придётся брать на себя функции операционной системы по раскидыванию задач по процессорам.
|
|
|
|
|