ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
608472 Топик полностью
Ксения (08.07.2015 15:05 - 15:16, просмотров: 115) ответил Mahagam на всякие неприятные эффекты - они у тех задач, что сами по себе плохо параллелятся. к примеру, биткоины и шифрование видеокартами ускоряются на ура.
Если задача "плохо параллелится", то ей многоядерный сопроцессор не поможет. Практика показывает, что польза здесь пропорциональна объему векторных операций,таких как умножение векторов и матриц друг на друга. Причем, очень многие алгоритмы решения задач активно используют векторные произведения. Советую по этой части обратить внимание на MKL (библиотека Intel'а для своих процессоров, реализующая функции линейной алгебры). При этом сами библиотечные функции знают, как им свое задание лучше распараллелить. Т.е. для этого не надо быть сведущим в работе многопоточных приложений, а достаточно просто использовать функции из библиотеки, как и из любой другой. Особо примечательно, что библиотека MKL распространятся и в виде Redistributable Pack'а, состоящего из набора dll, большинство функций которого можно вызывать из компилятора любого типа. Лично я прицепила ее к старенькому Borland Builder 6.0 и очень довольна. По крайней мере, библиотека в момент старта сама разбирается с тем, на каком компьютере она запущена, и решает, что ей использовать. Скажем, если процессор Pentium-4, то использует mkl_p4.dll, mkl_p4m.dll или mkl_p4m3.dll в зависимости от типа процессора. Для Core Duo и Core Duo 2 тоже есть свои библиотеки примитивов - mkl_core.dll или mkl_avx512.dll. Однако повторю, что выбираю их не я, а сама корневая библиотека mkl_rt.dll. Я же могу догадаться о ее выборе, лишь удаляя "лишние" dll до тех пор, пока корневая библиотека не заругается. Однако усеченный набор библиотек будет работать только на процессоре данного типа, а на другом начнет требовать отсутствующую dll. С этой темой MKL роднит то, что она при запуске определяет и присутствие Xeon-Phi, если тот был вставлен в слот, а потому без каких-либо просьб будет автоматически задействовать и его ресурсы, не смотря на то, что само приложение компилировал старенький компилятор и никаких потоков при программировании не применяли. А сам программист не собирается вникать в то, как Xeon-Phi работает, а просто ставит на него при инсталляции драйвер, как на обычную видеокарту, а дальше забывает о его существовании.