Igorr
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору FuzzyLogic Цитата: Попробуйте запустить один и тот же расчёт с 4мя и 8ю потоками. Сравнив время на тот и другой получите прибавку. Что-то подсказывает что 8ми поточный не закончит считаться в 2 раза быстрее, а если закончит, то я бы на вашем месте занялся оптимизацией кода | Так так и делал! но при включенном HT, и результат тот, который я уже написал. Понятно, что всегда можно что-то соптимизировать. Я использую распараллеливание DO с помощью OpenMP. Поскольку циклов в циклах некоторое количество, то был найден цикл, распараллеливание которого дало наименьшее время расчета. Весь расчет использует DOUBLE PRECISION переменные. Немного почему я использую HT. Прога считает ~30-40 часов. Комп в личном пользовании у меня один. Во время расчета: система (WS2012) иногда что-то про себя шелестит (хотя приоритет - на приложениях), я просматриваю pdf, doc, txt файлы, иногда пользую rar, почта периодически общается с главным почтовым сервером, я иногда ищу информацию в интернете и т.д., т.е. редко ли - частенько ли, но один (как минимум) поток расчета зависает - это тормозит расчет на ~1/8 времени нерасчета. Если же буду использовать 4 потока, то это затормозит расчет на ~1/4. К тому же, время всего расчета определится самым долгоиграющим потоком. Примерно так. |