|
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
|
||||||
Правильно распараллелить цикл14.03.2013, 22:02. Показов 4883. Ответов 21
Метки нет (Все метки)
Здравствуйте. Реализую тест Люка-Лемера на C#. Хочу использовать распараллеливание цикла, но не выходит.
По времени выигрываю примерно в 3 раза, но результат выдает неверный. Вот сам код (закомментированный цикл работает как надо, а Parallel.For некорректно):
0
|
||||||
| 14.03.2013, 22:02 | |
|
Ответы с готовыми решениями:
21
Распараллелить цикл Как правильно распараллелить программу чтобы она не тормозила Как распараллелить цикл с помощью Parallel.For? |
|
Master of Orion
|
||||||||||||||||
| 14.03.2013, 22:16 | ||||||||||||||||
|
west0293, естественно неправильно, тут же нельзя распараллелить, ведь на следующих итерациях используется информация о предыдущих... Если циклы друг от друга изолированы, параллелить можно, если нет - нельзя...
Добавлено через 1 минуту Небольшой совет по производительности
Добавлено через 4 минуты И лучше для времени свой контрол использовать, а не костыли:
1
|
||||||||||||||||
|
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
|
||||
| 14.03.2013, 22:30 [ТС] | ||||
|
Спасибо!
0
|
||||
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
|
| 14.03.2013, 22:36 | |
|
1
|
|
|
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
|
||
| 14.03.2013, 22:44 [ТС] | ||
|
Немного добавлю:
Этот код мне нужен для проверки одного конкретного большого числа (длина порядка 1млрд знаков). И, чтобы проверка не заняла долгие-долгие годы, мне нужно добиться максимального эффекта (задействовать максимальное количество ресурсов, возможно использовать какой-то кэш (например, текстовый файл), чтобы программу можно было прерывать и продолжать, возможно перейти на Linux (C# Mono) и т.д и т.п.). Компьютерного оборудования у меня достаточно много (порядка пяти компьютеров (3 ноутбука, 2 ПК) + куча комплектующих). Могу и еще достать - главное, чтобы толк был... Рассматриваю варианты по апгрейду ПК (процессор, SSD, ОЗУ, возможно использовать GPU) и т.д. и т.п. В общем, любые советы будут к месту))) Добавлено через 57 секунд
0
|
||
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
|
| 14.03.2013, 22:50 | |
|
Кликните здесь для просмотра всего текста
Свойства ЦП: Тип ЦП 4x Имя ЦП CPUID Intel(R) Core(TM) i5-3330 CPU @ 3.00GHz Версия CPUID 000306A9h Частота ЦП: Частота ЦП 2993.2 MHz (исходное: 3000 MHz) Кэш ЦП: Кэш L1 кода 32 Кб Кэш L1 данных 32 Кб Кэш L2 256 Кб (Asynchronous) Кэш L3 6 Мб
1
|
|
|
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
| 14.03.2013, 22:51 | |
|
ASM вам в помощь.
0
|
|
|
Master of Orion
|
|
| 14.03.2013, 23:06 | |
|
LeniumSoft, скомпилировал в релиз
![]() west0293 Вот такие характеристики: http://www.samsung.com/ru/cons... S01RU-spec Только хард на SSD поменял, но это тут не влияет.
1
|
|
|
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
|
|
| 14.03.2013, 23:07 [ТС] | |
|
У меня на ПК программа выполнилась за 5 мс. Сейчас я нашел и поделючил неплохую библиотеку для работы с большими числами, теперь:
0
|
|
|
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
|
|
| 14.03.2013, 23:09 [ТС] | |
|
Вот отсюда библиотеку взял... _http://www.emilstefanov.net/Projects/GnuMpDotNet/
0
|
|
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
|
| 14.03.2013, 23:11 | |
|
0
|
|
|
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
|
|
| 14.03.2013, 23:11 [ТС] | |
|
Если влом заморачиваться, вот уже проект с подключенной библиотекой: _http://zalil.ru/34348091
Интересно, что на Вашей машинке получится)
0
|
|
|
Master of Orion
|
|
| 14.03.2013, 23:13 | |
|
LeniumSoft,
Не по теме: эт все восьмерка!.. А вообще мобильный проц с десктопным не очень правильно сравнивать, даже если это i7 vs i3, благо многопоточности тут нет, так бы мобильный может и быстрее оказался бы)
0
|
|
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
|||
| 14.03.2013, 23:17 | |||
0
|
|||
|
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
|
||
| 14.03.2013, 23:25 [ТС] | ||
|
А на что посоветуете в первую очередь смотреть при апгрейде компьютера под вычислительные нужды? Частота? Кэш? может что-то еще? или всё в комплексе?
0
|
||
|
Master of Orion
|
|
| 14.03.2013, 23:36 | |
|
west0293, лол, архитектура решает. Например, у интела гораздо более высокая производительность на ядро. Но и цена выше. АМД занимает низ-мидл, интел - мидл-топ, цены у них соответствующие. Современный двухядерный i3 уделает за счет архитектуры любой первый core duo, возможно даже разница составит порядок.
LeniumSoft, почему-то думал, что меньше 3400 - i3 ![]() Добавлено через 56 секунд Casper-SC, ну да, ты б еще результаты с 3770k сравнил с множителем под 50, или даже с парочкой ксеонов ![]() Добавлено через 3 минуты В дебаге - 289 мс со сторонней библиотекой, а при попытке скомпилить в релиз крашится lol Добавлено через 1 минуту Всех любителей пытаться непонятный многопоточный код заставить работать прошу сюда ![]() Непонятная работа релиз сборки
0
|
|
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
|
| 15.03.2013, 10:06 | |
|
Я бы всёж попробовал эти несколько строчек на C++ проверить! Возможно будет быстрее!
0
|
|
|
Заблокирован
|
||||||
| 15.03.2013, 15:56 | ||||||
|
Попробуйте так:
0
|
||||||
| 15.03.2013, 15:56 | |
|
Помогаю со студенческими работами здесь
20
Как правильно распараллелить выполнение DoWork, чтобы не было взаимоисключающих ситуаций Как правильно распараллелить цикл? Распараллелить цикл Как распараллелить цикл while?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 05.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|