![]() |
|
Модераторы: xvr |
![]()
|
|
| fray |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.6.2007 Репутация: нет Всего: 0 |
Как сказать треду чтобы он работал только на втором проце. В двух процессорной системе. FreeBsd amd64 Core Duo ?
Спасибо. |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: нет Всего: 8 |
По-моему это не тебе решать, а оси.
|
|||
|
||||
| fray |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.6.2007 Репутация: нет Всего: 0 |
да а как заставить ? Ну или хотя бы рекомендовать... Просто будет очень не хорошо если первый проц будет загружен под 100 а второй отдыхать.. фря 6.2 Это сообщение отредактировал(а) fray - 30.10.2008, 16:29 |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 1 Всего: 154 |
в винде есть функции SetThreadAffinityMask, SetThreadIdealProcessor, которые делают то, что нужно ТС-у, так-что наверняка можно
|
|||
|
||||
| fray |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.6.2007 Репутация: нет Всего: 0 |
Круто но Венда не мой случай, мне как бы это на фряхе делается ... |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: нет Всего: 14 |
OpenMP попробуйте
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 1 Всего: 154 |
нагуглил,
то или нет не знаю |
|||
|
||||
| fray |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.6.2007 Репутация: нет Всего: 0 |
Спасибо за ссылки, а можно это же, но применительно к pthreads ? А то лень знаете ли
Это сообщение отредактировал(а) fray - 30.10.2008, 17:33 |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
не то, т. к Linux specific во FreeBSD cpuset_setaffinity()/cpuset_getaffinity() тут Добавлено через 6 минут и 51 секунду нету -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
А ты предпочитаешь, что бы под 100% был загружен второй, а отдыхал первый? ОС сама должна разруливать процессоры, что бы их равномерно загрузить (если конечно есть чем)
|
||||||
|
|||||||
| fray |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.6.2007 Репутация: нет Всего: 0 |
У меня два потока в программе, и оба они весят на одном проце, 50.0% idle CPU 99.9%, система двух процессорная если бы работало на двух процах то было бы 120% что-то вроде того, как мне кажется. Ну не врубается умный шедуллер. Добавлено через 5 минут и 28 секунд
А можно пример создания треда и примениния дл него cpuset_setaffinity() |
||||||||||
|
|||||||||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 1 Всего: 154 |
а ты уверен что оба потока работают одновременно? может у тебя там синхронизация где-нибудь происходит |
|||
|
||||
| xvr |
|
||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Похоже умный шедулер не вкурсе, что у тебя 2 thread'а. Я не знаю, как реализован pthread в BSD, но похоже не очень |
||||||||||
|
|||||||||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
вообще говоря, привязка к конкретным процессорам/ядрам, обычно только снижает производительность, т. к шедулер обязан будет держать процесс в остановленном состоянии в то время, когда может быть доступен процессор/ядро, не входящий/ее в его affinity маску
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: нет Всего: 14 |
IMHO так не бывает - уровень привилегий обычных программ недостаточен для переключения контекста |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Бывает, в первых версиях pthread на Linux именно так и было. Собственно контекст ПРОЦЕССА не переключался, библиотека выделяла под каждый thread свое пространство в памяти процесса и переключала thread'ы просто путем записи в esp и eip. Для системы это просто был один процесс и никаких thread'ов |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
добавлю а кванты времени регулировались таймерами и сигналами -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |