| Реализация распараллеливания |
|
3bl3gamer
| Дата: Суббота, 03.01.2009, 17:30 | Сообщение # 1 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 650
Статус: Offline
|
ГМ на многоядерых(на двухядерных точно) пашет только на одном ядре. С одно стороны, случайно получившийся бесконечный цыкл не повесит комп, по с другой стороны обидно, когда используется только половина(или меньше) вычислительной мощности. Нет ли какой-нибудь возможности перераспределить вычисления, ну, хотя бы, на два ядра?
|
| |
| | |
|
Ang3L
| Дата: Суббота, 03.01.2009, 17:32 | Сообщение # 2 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Quote Нет ли какой-нибудь возможности перераспределить вычисления, ну, хотя бы, на два ядра? Для ГМ: нет. Хотя ... Есть вероятность, что с помощью дллки можно, но эт только догадки. Хочешь распараллеливание, выбирай более серьезную среду разработки.
Blogpost
Сообщение отредактировал Ang3L - Суббота, 03.01.2009, 17:33 |
| |
| | |
|
3bl3gamer
| Дата: Суббота, 03.01.2009, 17:37 | Сообщение # 3 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 650
Статус: Offline
|
мда, обидно.
|
| |
| | |
|
DreamRunner
| Дата: Суббота, 03.01.2009, 18:27 | Сообщение # 4 |
Админ
Группа: Админы
Сообщений: 1382
Статус: Offline
|
Если на ГМ не хватает производительности - то действительно не того уровня проект начал) Либо оптимизировать, либо изучить чтото пошустрее. В принципе и то и другое времени занять может одинаковое количество) А неиспользование второго ядра - это фича винды. Там вроде в реестре это можно отключить, но понятное дело что у юзера этого лучше не делать)
|
| |
| | |
|
3bl3gamer
| Дата: Суббота, 03.01.2009, 19:26 | Сообщение # 5 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 650
Статус: Offline
|
нашёл такую интересность: если запустить дважды какую-нть ресурсоёмкую прогу, то каждая будет работпть на своём ядре!
|
| |
| | |
|
CH@$ER
| Дата: Воскресенье, 04.01.2009, 12:42 | Сообщение # 6 |
Всех уже задолбал
Группа: Высший Советник
Сообщений: 1088
Статус: Offline
|
А если запустить два потока в программе, то будет использоваться два ядра на одно приложение
Создание 3D FPS · Онлайновые таблицы рекордов · Многое другое!
|
| |
| | |
|
Mugen
| Дата: Воскресенье, 04.01.2009, 12:44 | Сообщение # 7 |
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
|
DreamRunner, когда я был на 2 ServisePack - приходилось ставить патч, чтобы винда смогла работать с моими 2-мя На 3-ем этого делать не пришлось (или даже просто не приходилось) А вообще я не контролил загрузку процев :S У меня на ноуте вообще стоит программка, понижающая вольтаж на проце (чтобы не грелся как сковородка) И еще: я как-то юзал программу, с помощью которой можно распределять программы по процам
|
| |
| | |
|
3bl3gamer
| Дата: Вторник, 06.01.2009, 11:38 | Сообщение # 8 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 650
Статус: Offline
|
Quote (CH@$ER) А если запустить два потока в программе всмысле?
|
| |
| | |
|
Danox
| Дата: Четверг, 12.02.2009, 00:09 | Сообщение # 9 |
Болтун
Группа: Проверенные
Сообщений: 213
Статус: Offline
|
cpu control заставит игры гма использовать столько ядер сколько пожилаешь.
|
| |
| | |
|
NeutralD
| Дата: Четверг, 26.02.2009, 04:37 | Сообщение # 10 |
Хрен заткнешь
Группа: Высший Советник
Сообщений: 398
Статус: Offline
|
не ну кстати многоядерность не наю, а вот мультитрединг -- да. поскоку длл-ку на gmc видел для этих дел.
|
| |
| | |
|
Danox
| Дата: Четверг, 26.02.2009, 22:53 | Сообщение # 11 |
Болтун
Группа: Проверенные
Сообщений: 213
Статус: Offline
|
там таких дллок навалом
|
| |
| | |
|
NeutralD
| Дата: Суббота, 28.02.2009, 00:48 | Сообщение # 12 |
Хрен заткнешь
Группа: Высший Советник
Сообщений: 398
Статус: Offline
|
Сообщение отредактировал NeutralD - Суббота, 28.02.2009, 01:01 |
| |
| | |
|
Stasundr
| Дата: Суббота, 28.02.2009, 19:15 | Сообщение # 13 |
Всех уже задолбал
Группа: Высший Советник
Сообщений: 1058
Статус: Offline
|
.blanco
|
| |
| | |
|
NeutralD
| Дата: Воскресенье, 01.03.2009, 23:09 | Сообщение # 14 |
Хрен заткнешь
Группа: Высший Советник
Сообщений: 398
Статус: Offline
|
ну кстати да, там есть многоядерность. Добавлено (01.03.2009, 23:09) --------------------------------------------- и вот ещё вдогоночку вопрос по длл. кто уже пробовал с ней работать. у меня такая фигня -- после создания треда, выполнения им функций, я делаю новый тред, но старый остается как нагрузка на проц. в диспетчере, то есть, процент нагрузки увеличивается. плюс, если делаешь суспенд работающему треду, его не остановить. приходится терминейтом, но тогда идет утечка опять же процентов в диспетчере. в итоге на 100 загрузка проца. у вас как? походу без многоядерности жить проще, чем с этой Длл. она реально много проца отъедает после создания каждого нового треда. а старому, как известно, нельзя назначать другие функции. и треды нельзя удалять. т. е. их можно терминейтить, но в этом случае все равно остается мемори лик -- утечка памяти. вывод: длл сыра и говно.
Сообщение отредактировал NeutralD - Воскресенье, 01.03.2009, 23:32 |
| |
| | |
|
NewStrannik
| Дата: Понедельник, 02.03.2009, 12:43 | Сообщение # 15 |
Всех уже задолбал
Группа: Проверенные
Сообщений: 808
Статус: Offline
|
Чего-то ты загнул. Длл'ка далеко не говно. Пусть глючная, но это уже прорыв! ^_^ Прикольно! Получается зная, как использовать функцию парсинга строки, можно сделать простенький дебаггер, который можно будет использовать с любой игрой на ГМ (:по крайней мере, 7:)..
|
| |
| | |
|
Stasundr
| Дата: Понедельник, 02.03.2009, 22:08 | Сообщение # 16 |
Всех уже задолбал
Группа: Высший Советник
Сообщений: 1058
Статус: Offline
|
NeutralD, эм... как насчет: Quote Terminating thread: You can terminate a thread with thread_terminate function, but use it only if You really need to terminate a thread, because terminated with this function are unable to free used resources/memory, causing memory leaks. To terminate an thread safely, You must use statements: Code my_thread = thread_create( " while (!global.terminated) { // execute until thread is about to terminate do_something(); do_something(); do_something(); if ( global.terminated ) exit; // terminate on this line when thread is about to terminate do_something(); do_something(); } ", 0 ); and all You must to do is set global.terminated variable to true ;o длл рулит
.blanco
|
| |
| | |
|
NeutralD
| Дата: Вторник, 03.03.2009, 20:46 | Сообщение # 17 |
Хрен заткнешь
Группа: Высший Советник
Сообщений: 398
Статус: Offline
|
Stasundr, не-е-е. понимаешь, тред-то он не выгрузит. вот попробуй сам создай несколько тредов -- загрузка проца увеличится. а как потом удалить эти созданные треды? загрузка увеличивается даже тогда, когда в тредах уже ничего не исполняется. само наличие треда увеличивает нагрузку на проц. т. е. создал тред -- изволь наблюдать в диспетчере прирост нагрузки на процент. а если мне понадобится много тредов? или, скажем, как я могу одному и тому же треду назначать разные куски кода? Добавлено (03.03.2009, 20:46) --------------------------------------------- NewStrannik, дык, деббагер уже существует. Притом, давно. Лежит там же, где и декомпилятор гм-а.
|
| |
| | |
|
Stasundr
| Дата: Среда, 04.03.2009, 05:27 | Сообщение # 18 |
Всех уже задолбал
Группа: Высший Советник
Сообщений: 1058
Статус: Offline
|
NeutralD, мне хватает одного треда, с которым я работаю через кейсы (устанавливая "режим работы"), так что у меня никаких проблем нет
.blanco
|
| |
| | |
|
WertyXBOCT
| Дата: Среда, 04.03.2009, 07:52 | Сообщение # 19 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
|
NeutralD, много тредов создавать не имеет смысла. Вообще, там где ты используешь тред, возможно вообще ничего использовать не надо. Почитай статьи о тредах.
Blog:www.WeslomPo.ru mailto: i@weslompo.ru
|
| |
| | |
|
Ang3L
| Дата: Среда, 04.03.2009, 14:30 | Сообщение # 20 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Вот здесь рассказывается об трэдах и их реализаций. Статья написана для С++, но вполне понятна и можно выловить суть трэдов и их реализацию. А вот здесь о многопоточности в Windows (с ним идёт прога для тестов с исходниками. 6мб). Оч. полезная статья.
Blogpost
|
| |
| |
|
|