![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
gryzli |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 6.1.2005 Репутация: нет Всего: нет |
помогите, народ!
надо написать программку для управления многопроцессоным комплексом, а с какой стороны подойти не знаю!!! надо процессы раскидать по процессорам, ну и если моно распараллелить последовательную программу. ПОМОГИТЕ!!! СЫПЛЮСЬ!!! хотя бы с какой стороны подойти!!! ![]() |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Подходи со стороны создания потоков+синхронизирование
![]() Вроде как Винда сама должна их по процам раскидать.. --------------------
|
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
gryzli
Смотри в гугл, я через него и не такое находил... chipset Логически верно, но винде, как все отлично знают косвенно вообще опасно что-либо доверять ![]() |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
En_t_end, есть подозрение что вручную потоку процессор, на котором он должен выполнятся, ты не назначиш
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
"есть подозрение что вручную потоку процессор, на котором он должен выполнятся, ты не назначиш"
Поэтому надо отойти от стандартного виндузного понимания потока... не будем использовать обьект класса CWinThread, создадим свой класс ! ![]() ![]() |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
причем тут класс? поток -- это объект системы и уйти от него IMHO не получится
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
"причем тут класс? поток -- это объект системы и уйти от него IMHO не получится"
Начнём с конца ![]() Ну... поток - обьект системы, это конечно верно, но вот каким образом мы управляем этим потоком ?, правильно через класс !, значит во первых надо имхо переделывать класс, в котором будет присутсвовать механизм разделения обьектов системы(в данном случае потоков) между разными процессорами... ещё раз повторюсь, делать это можно и нужно только через нискоуровневые вставки из асма, та что я создаю у колег тему... |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
если пойти с конца, то увидим функции API CreateThread/TerminateThreat и еще несколько
причем тут класс я так и не понял. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
_hunter
Упс... извини, а вот про это забыл... Но всё равно делать это надо в низкоуровневом режиме... Это сообщение отредактировал(а) En_t_end - 6.1.2005, 15:00 |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
только не факт что винда даст заниматься переключением потоков
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
"только не факт что винда даст заниматься переключением потоков "
Главное получить ид. процессоров. "не факт" --- согласен, но всё же будет интересно по-пробывать! |
|||
|
||||
chipset |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
А я к примеру не знал ![]()
ИМХО, довольно малореализуемая затея... Не проще ли по потокам? --------------------
|
||||||
|
|||||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
"А я к примеру не знал "
Ну это вопрос чисто философ., поэтому ему отдельное место во Флейме... |
|||
|
||||
Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: нет Всего: 155 |
Воспользуйся MPICH
-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Кстати, boost тоже реализует мультитридинг
![]() Это сообщение отредактировал(а) chipset - 7.1.2005, 02:17 --------------------
|
|||
|
||||
Гость_gryzli |
|
|||
Unregistered |
Народ, я конечно понимаю что необходимо через потоки и т.д.
у меня загвоздка в следующем: камешков 256 и надо дать им задачу на обработку матриц, т.е. распараллелить эту задачу, но когда я переправляю какую нибудь операцию, то он мне выдаёт (через проверочные данные) что камешек уже загружен, и так к любому. Может у меня подход неправильный к выбору камешка или к обработке матриц пока не пойму!? А MPICHем пользоваться низя как и другими подобными!!! спасибо что откликаетесь, мож чаго ещё подскажите??? ![]() ![]() |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Просто давай различные задачи разным потокам и синхронизь их в общей матрице.
--------------------
|
|||
|
||||
gryzli |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 6.1.2005 Репутация: нет Всего: нет |
Подскажите как различные задачи дать различным потокам, и потом собрать резельтаты воедино!!! хреново с понятием синхронизации в разных камешках, не могу этого понять!!! Корче ни как не могу раскидать задачи на каждый камень!!!
Помогите чайнику, плиз!!!!!! |
|||
|
||||
chipset |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Этот вопрос уже зависит от алгоритма.
Все процессоры выполняют свои потоки соответственно выполняя задачу, и по выполнении встраивают в глобальный блок памяти - который и является ответом. --------------------
|
||||||
|
|||||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Вот к примеру: Нужно найти все простые числа от 0 до 32768.
Создаешь просто два поток и одному задаешь функцию по поиску ПЧ от 32768 до 16384, а другому от 0 и до 16383 (включительно). Когда поток находит число - он кладёт его в глобальную память и по завершению ждёт пока второй (первый) поток закончится и можно будет заняться сортировкой и т.д.. Пример довольно простой и плохо распарарелленый, но я думаю суть показывает... --------------------
|
|||
|
||||
Фа |
|
|||
Unregistered |
|
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Фа
Воооо!!! - а ведь действительно! |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
что Вооо? теперь мы окнам уже доверяем? ;)
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Intro |
|
|||
Unregistered |
это типа я
![]()
Не это я про битовые маски ![]() А к окнам я и впредь с недоверием относиться буду ![]() |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
существуют. но положится на них == положится на окна. и какое уж тут Воооо? ;)
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |