|
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
|
||||||
Правильно распараллелить цикл14.03.2013, 22:02. Показов 5002. Ответов 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?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
|