![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
Чисто философский вопрос пришел ко мне спросонья. А используется ли Java на мултипроцессорных компютерах и кластерах предназначенных для тяжелых рассчетных задач? Thread вроде самим Создателем предназначена для этого.
ЗЫ: Это чисто теоретическию интерес. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
Похоже нифига не юзает, пишу софт использующий многопоточность, запускаю на двух ядерном проце, в итоге нагружается только одно ядро :(
Вычислить средствами джавы сколько процессоров в системе не проблема (и двухядерный проц определяется как два проца), а вот как распределить задачи между процессорами, то есть разные потоки на разные процессоры (ядра) пустить? -------------------- |
|||
|
||||
| mikla |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 3.12.2006 Где: Витебск Репутация: нет Всего: нет |
А это разве не задача операционной системы : распределять потоки ?
--------------------
|
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
Наверое да, если на PC. Но существуют специальные компьютеры для параллельных вычислений с тысячами процессоров. Я познакомился в общих чертах с одним таким. Но на том, с которым я знакомился только C++ и Fortran. Работу между процессорами распределяешь сам програмно. Кроме того существуют кластеры и программы для распределенных вычислений. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Значит или у тебя один процесс только грузит ЦП или ты что-то не так делаешь. Запусти:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Из-за AtomicBoolean тред чуть ли не в каждой итерации блокироваться будет (жёсткая синхронизация). Шедулер может и не разбросать треды по процессорам что мелкими рывками работают. Замени на обычную boolean (забей на ошибку де-синхронизации в пару миллисекунд), запусти threadCount*10 тредов.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Sardar, ну ты бы почитал доку по java.util.concurrent.atomic
или хотя бы запустил этот пример. За Linux я конечно не скажу, но под Windows он на 30 секунд практически полностью блокирует GUI. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Упс, туплю
Глянул в код, это volatile переменная, дополненная атомарными операциями compareAndSet, lazySet etc. Ты их не используешь, т.е. по сути используешь обычную volatile, в принципе дело вкуса. У меня всего с 2 тредами полностью блокирует всё, даже менеджер задач в foreground, загрузка обеих ядер 100%. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |