![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Всем доброго времени суток! Думаю каждый из Вас хотя бы раз слышал о параллельном программировании (задействовании программой всех доступных процессоров). Такс.... 2 вопроса:
1) Есть ли нечто такое для Builder? 2) Есть ли нечто такое для VC ++ 2008 ? Но не Intel Paralell Studio (там надо подключать ихний компилятор, а мне нужен мелкософтный) Чуток расшифрую второй вопрос. Почему же мне не подходит Интел? Ну скажу честно просто программа отказывается работать, а точнее работает на 50%. Точнее DLL скомпилирована под Интелом. Почему не знаю... но знаю что программа моя во всю изменяет память, адреса и т.д. в пространстве другой программы (ну что то типа кряка но не в ту ветвь). Сама же DLL компилируется но при запуске начинают появятся всевозможные падения и т.д. (падает не сама длл а приложение которое она редактирует) потому и спрашиваю о чем то таком но для компилятора VC ++ 2008 =) Благодарю!!! |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: нет Всего: 9 |
да, тебе нужно MPI
-------------------- dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null echo $0 >> $0 |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Люди, вы чего! MPI надо только если есть кластер. А у человека просто многопроцессорная система. Kirgston, для Билдера готовых фреймворков, заточенных под него наверно нет. MSVS версии Enterprise поддерживает OpenMP. Насчёт более дешёвых версий не уверен. Intel Paralell Studio это вообще не средство разработки параллельных приложений, а средство для отыскания ошибок в нём (поддерживаются OpenMP и некоторые чисто интеловские библиотеки), т.е. это вспомогательное средство. Вообще сейчас библиотеки для паралл. прогр-ния появляются как грибы после дождя. То что тебе нужно сейчас - это наверно просто изучить написание многопоточных программ. Будешь разделять работу программы на потоки, а ОСь сама их будет раскидывать по процессорам. Ну можно научиться и прямо привязывать каждый поток к конкретному процессору. Команды соответстсвующие тебе на форуме подскажут. На интеловском сайте можешь найти пример кода, определяющего кол-во ядер и процессоров в системе. В Билдере для работы с потоками юзай класс TThread. Примеров в сети туча. В MSVS [на гольном С++]: _begithreadex или CreateThread, [на MFC]: AfxBeginThread. Да, ещё есть TBB в опенсорсном и платном виде. Библиотека от Интел, вроде как на ней всё проще. Но лучше начать с изучения многопоточного программирования. Если юзаешь C#, то посмотри в сторону MC#, например. Это сообщение отредактировал(а) ksili - 24.12.2009, 10:24 -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
jonie, Благодарю!
ksili, как программировать потоки я знаю =) но чисто мое имхо - указывая потоку нужный процессор это как то глупо... ведь не факт что ядро свободно правда? Что на ядре ничего не крутится сейчас? Что оно может полностью обслужить меня. Да и кол-во потоков необязательно надо делать <= кол-во ядер на процессоре. Даже скажу иначе... чем больше потоков тем больше они будут вытеснять другие приложения а значит и обрабатываться быстрее (но это конечно не значит что надо сделать миллиард потоков ![]() |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
facepalm.jpg
|
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Дяди из крупных контор тоже ничем тебе не помогут, когда все доступные ядра уже заняты. Какие операционные системы глупые - берут и указывают потокам, где им выполняться. В общем ты спрашивал про MSVS 2008. Ответ: OpenMP. В настройках проекта ставишь OpenMP support = Yes и дальше юзаешь директивы OpenMP. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Благодарю! =) разобрался
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |