Create site free
Реализация распараллеливания - Решение серьезных вопросов - Разработка игр на Game Maker (Advanced Mode) - Форум Game Maker. Разработка игр.
Здравствуй Гость | Перейти на сайт

Главная | Форум | Регистрация | Войти
gmaker.net ;) [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Advanced Mode) » Решение серьезных вопросов » Реализация распараллеливания (Многоядерность, Мульти-трединг)
Реализация распараллеливания
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
А если запустить два потока в программе, то будет использоваться два ядра на одно приложение wink


Создание 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
Danox, навалом -- это больше, чем три, верно?
Я лично вот об этом говорил (GM Threads):
http://gmc.yoyogames.com/index.php?showtopic=390517

Это единственная из тех, что позволяют с нормальным набором функций работать с тредами.



Сообщение отредактировал 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, мне хватает одного треда, с которым я работаю через кейсы (устанавливая "режим работы"), так что у меня никаких проблем нет tongue


.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
 
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Advanced Mode) » Решение серьезных вопросов » Реализация распараллеливания (Многоядерность, Мульти-трединг)
Страница 1 из 212»
Поиск:



Сообщество Gmaker.SU 2005-2012
Используются технологии uCoz
Простой вход