| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Параллельное выполнение |
| Автор: Свят86 16.11.2011, 15:54 |
| Здравсвуйте. у меня заминка с такой задачей: есть функция дешифрования алгоритма DES взятая из dcpcrypt2 и брутфорс ключей написанный на ассемблере. необходимо распараллелить вычисления так, чтобы первый процессор обрабатывал брутфорс, а остальные процессоры вызывали функцию дешифрования, в которую передаются закрытый текст и ключ. не могу понять как сформировать эту задачу, пытаюсь разобраться с MPI, но мне в принципе без разницы каким образом это реализовать. |
| Автор: Свят86 17.11.2011, 09:31 |
| модераторы, перенесите пожалуйста тему в общие вопросы. |
| Автор: Alca 17.11.2011, 11:01 | ||
если кодишь на C++ Builder, то там есть классы для работы с потоками |
| Автор: Свят86 17.11.2011, 12:35 |
| это понятно, просто для этих потоков нужно сформировать задачу! и у меня это не получается... вот код: ZeroMemory(szPassword, sizeof(szPassword)); TDCP_des* Cipher = new TDCP_des(this); while (TRUE) { __asm { pushad mov edi,offset szPassword mov ebx,offset bAlphabet L1: movzx eax,byte ptr [edi] xlat cmp al,0 je L3 mov [edi],al jmp L5 L3: xlat stosb jmp L1 L5: popad }; Cipher->InitStr(szPassword, __classid(TDCP_sha1)); DecryptStr=Cipher->DecryptString(EncryptStr); if (DecryptStr==MessStr) break; }; Cipher->Burn(); Cipher->Free(); while (TRUE) - это первый поток (основной) а Cipher->InitStr(szPassword, __classid(TDCP_sha1)); и DecryptStr=Cipher->DecryptString(EncryptStr); для остальных потоков! помогите плиз с реализацией. |
| Автор: Alca 17.11.2011, 12:45 |
| Если билдер, то прочти это http://forum.vingrad.ru/forum/topic-60076/view-all.html |
| Автор: Свят86 17.11.2011, 13:21 |
| я читаю большую книгу по MPI, но на это уйдет куча времени, я задачу нужно решить до выходных! тут всего пары строк не хватает! |
| Автор: Alca 17.11.2011, 18:25 |
| студент? |
| Автор: Свят86 17.11.2011, 19:26 |
| нет, просто нужно показать что можно из большого сервера выжать! |
| Автор: Alca 17.11.2011, 19:44 |
| ты лучше покажи, что можно с http://ru.wikipedia.org/wiki/CUDA выжать Добавлено @ 19:44 в топку CPU, GPU рулит |
| Автор: kemiisto 17.11.2011, 19:54 |
| Alca, ну, покажи нам чего ты там нарулил. |
| Автор: Свят86 17.11.2011, 20:17 |
| у меня сервер большой, CUDE до него далековато! |
| Автор: Alca 17.11.2011, 20:53 | ||
kemiisto, ты хочешь сказать, что CPU быстрее CUDA? |
| Автор: Свят86 17.11.2011, 21:29 |
| не, CUDA на много быстрее, я даже подумывал над рас предложением с использованием видях, но у меня в распоряжении мощный сервер и он сделает самую быструю видяху! |
| Автор: kemiisto 17.11.2011, 22:20 |
Твое предложение бессмысленно, т.к. 1. У человека уже есть компьютер на котором нужно посчитать быстро с множеством CPU. Не GPU. 2. У человека уже есть код C++, который отлажен на x86, а портирование на CUDA и отладка на другой архитектуре займёт туеву хучу времени. 3. Человек не знает CUDA, а изучение CUDA займёт туеву хучу времени. 4. CUDA - ограниченная технология, подходящая не для любой задачи. А уж ощутимый выигрыш можно получить не так часто. 5. CUDA - nVidia only. OpenCL хоть бы предожил. |
| Автор: Свят86 17.11.2011, 22:29 |
| мне нравятся ваши рассуждения, но давайте вы объединитесь и подкините мне пару строк решающих мою проблему! |
| Автор: Alca 17.11.2011, 22:38 | ||||||||||
Свят86, подожди
множество - это понятие растяжимое
Ага, я видел этот выдернутый код Не, он хочет чтоб за него все написали, всего пару строк
Походу он ничего не знает
Ну покалькулировать то можно
Я не против |
| Автор: Свят86 17.11.2011, 22:49 |
| суммарная мощность процессоров более 500Ггц код выдернутый, но это сама суть! я не спорю что в MPI еще не до конца разобрался, но кода там и вправду чуть чуть! строка с инициализацией, строка с определением количества процессоров ну и вконце опрос на решение/нерешение задачи и завершение MPI! с этим все понятно, но вот в середине... просто по книге что у меня есть получается какой-то бред типа процессоры сами разбирают задачи! мне это немного не понятно! с потоками мы их сами вызываем, а по примеру в книге получается что они сами разбирают! |