|
21 / 18 / 4
Регистрация: 07.02.2010
Сообщений: 59
|
|
Многопоточность - дает выигрыш?11.04.2010, 14:00. Показов 2943. Ответов 9
Метки нет (Все метки)
добрый день!
растолкуйте, дает ли выигрыш в скорости многопоточность в сишарпе как таковая - пространство имен System.Threading? Или многопоточность нужна для удобства логики программы,а выигрыша в скорости? понятно,что для пущей скорости надо раскидываться по разным ядрам паралл куски программы.А вот что касается потоков? Есть ли средства распараллелизации для сишарпа? типа openMp или paralles studio Добавлено через 14 минут Да,кому интересно - есть в сишарпе возможность раскидывать по разным ядрам. есть новый аддон Parallel Extensions .net А мой вопрос про System.Threading в силе еще ! )
0
|
|
| 11.04.2010, 14:00 | |
|
Ответы с готовыми решениями:
9
Оценка шансов на выигрыш каждого из игроков методом Монте Карло Что было раньше: первый выигрыш (3 очка) или первый проигрыш (0 очков)?
|
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
| 11.04.2010, 23:33 | |
|
Многопоточность еще никогда не давала преимущества по скорости выполнения, это самое распространенное заблуждение, наоборот - она замедляла время выполнения за счет того что были лишние переключения между потоками.
Многопоточность создана для того, чтобы была возможность выполнять два тяжелых действия практически одновременно, например сжатие файлов и одновременный вывод информации о прогрессе, времени, как в WinRAR, на форму. В однопоточной реализации форма бы зависала
0
|
|
|
21 / 18 / 4
Регистрация: 07.02.2010
Сообщений: 59
|
|
| 12.04.2010, 01:34 [ТС] | |
|
Спасибо большое за ответ! Вы подвели итог
Буду использоваться Parallel Extensions .net для раскидывание по ядрам!
0
|
|
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||
| 12.04.2010, 02:09 | ||
|
0
|
||
|
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
|
|
| 12.04.2010, 02:37 | |
|
пожалуйста после того поста не запутайся: многопоточность не есть многозадачность! многопоточность приносит огромное повышение производительности: сейчас весь IT мир только и говорит про облачные вычисления и куду с файром. только это отдельная фича, идеология другая и алгоритмы соответствующие должны быть. а так, соглашусь с M128K145, многопоточность (в рамках однопроцессорных систем) никогда не даст выигрыша по скорости ведения расчетов. она лишь упростит разработку больших систем и параллельную многозадачность
зы. опять же не заблуждайся - Parallel Extensions - метасахар. если руки прямые - лучше ими все ресурсоёмкие вещи делать
0
|
|
|
21 / 18 / 4
Регистрация: 07.02.2010
Сообщений: 59
|
|
| 12.04.2010, 09:12 [ТС] | |
|
M128K145,Mikant> спасибо за ответы. я занимаюсь алгоритмами компьютерного зрения,там приходится высчитывать большие матрицы порой.. поэтому вижу смысл разбить на несколько блоков матрицу и считать параллельно..
А каким образом в dotnet можно проводить параллельные вычисления,если не parallel ext?
0
|
|
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
| 12.04.2010, 11:33 | |
|
eugene0001, разбив матрицу вы наоборот замедлите работу. Поймите, параллельно - не значит одновременно. В каждый момент времени выполняется только один поток. Разбив матрицу вы убиваете огромное время на переключение между потоками и замедляетесь. Просто ознакомьтесь с принципами многопоточного программирования и вы поймете свою ошибку
0
|
|
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
| 12.04.2010, 14:28 | |
|
обработку матриц можно оптимизировать и без потоков, например универсальный вариант - развернуть матрицу в массив, обычно это дает 10-15% производительности
ну и в зависимости от конкретной задачи еще много чего придумать можно недавно конкурс был - перемножение матриц, изначальный вариант(без оптимизаций) работал ~18 минут, а в итоге прога победителя сделала те же действия за 7 секунд, такая вот оптимизация
0
|
|
|
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
|
|
| 12.04.2010, 14:33 | |
|
M128K145, у него НЕ один камень!!!
читай тут http://sourceforge.net/projects/mbp/
1
|
|
|
21 / 18 / 4
Регистрация: 07.02.2010
Сообщений: 59
|
|
| 12.04.2010, 15:35 [ТС] | |
|
M128K145> да-да,я уже понял,что разбиения не потоки ни к чему не приводит кроме как увелечения работы алгоритма для переключения между потоками. я о другом сейчас.. у нас был курс суперкомпьютеры,где мы распараллеливали вычислительные алгоритмы и кидали их по разным ядрам,тем самым они выполнялись одновременно.Но это было OpenMP и MPI, а в C# я нашел только Parallel Ex. Чем он так плох?
m0nax> спасибо за ценный совет по разворачиванию матрицы в массив.скажите,а с чем это связано - выигрыш в производительности? алгоритм я и так в меру своих сил оптимизировал до потолка имхо.единственное хочется теперь матрицу разбить на блоки и чтоб каждое ядро обрабатывало свой блок. M128K145> вы совершенно правы,спасибо за ссылку!
0
|
|
| 12.04.2010, 15:35 | |
|
Помогаю со студенческими работами здесь
10
Вирус не дает установить антивирусные программы и не дает скачать антивирусы с сайтов
Шансы на выигрыш на префлопе
Выигрыш золотой маски в Assassin's Creed 2 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|