Автоматическое распарралеливание есть
Пожалуйста, назовите такие инструменты! Как они работают? Поясню вопрос на конкретном примере: один из туров конкурса Интела по многопоточным приложениям был такой. Дано: исходный код программы (однопоточной) на С клеточного автомата Жизнь, требовалось сделать из него многопоточное приложение, побеждал тот, чья программа (при прочих равных) работала быстрее. Срок решения был 1 месяц, но первые участники, приславшие решение, премировались доп. очками. Все мы путались почти месяц, решая вручную, а как было бы хорошо, имея автоматический инструмент, сделать задание за минуту и получить приз
Сейчас такое возможно? Как? Хочу попробовать с тем заданием из чистого интереса, т.е. есть некий конвертор исходного кода, на выходе получаю быстрый параллельный код, компилирую его обычным образом и радуюсь
А оптимальное количество потоков такой инструмент зашьет в exe? Нпр., если тестовый комп. i7 c четырьмя ядрами, то 8 потоков, а если с меньшим или большим количеством ядер, то потоков будет меньше/больше?
-- Ср окт 30, 2013 03:21:47 --Посмотрел в сетке (вики):
Цитата:
Продукт Intel Parallel Advisor — это вспомогательный инструмент для распараллеливания приложений, предназначенный для разработчиков на языках C, C++, C# и Fortran. Это средство обнаруживает области кода с наибольшим потенциалом для реализации параллельных вычислений и выявляет основные проблемы синхронизации.
Цитата:
Модуль Intel Parallel Amplifier — это мощное средство для оптимизации производительности и профилировки параллельных приложений. [...] Получение подробных данных производительности горячих участков кода, потоков, блокировок синхронизации и задержек, DirectX вызовов, пропускной способности.
Цитата:
Продукт Intel Parallel Inspector — простой в использовании инструмент для обнаружения ошибок памяти и потоков в последовательных и параллельных приложениях на платформах Windows и Linux.
Это полезно, но это не то - это вручную!