Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2010, 14:00
Ответы с готовыми решениями:

Оценка шансов на выигрыш каждого из игроков методом Монте Карло
помогите пожалуйста очень срочно надо на C# написать программу!!! не могу понять как делать с помощью метода Монте Карло 1. Игрок A...

Что было раньше: первый выигрыш (3 очка) или первый проигрыш (0 очков)?
2.Известны очки (3, 1 или 0), полученные футбольной командой за ряд игр в порядке их проведения. Что было раньше: первый выигрыш (3 очка)...

Баскетбол. Для каждой игры определить словесный результат игры (выигрыш или проигрыш)
В одном массиве записано количество мячей, заброшенных баскетбольной командой в каждом из 15-ти матчей, в другом — количество пропущенных...

9
Эксперт JavaЭксперт С++
 Аватар для M128K145
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
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
12.04.2010, 02:09
Цитата Сообщение от eugene0001 Посмотреть сообщение
Буду использоваться Parallel Extensions .net для раскидывание по ядрам!
Если нет необходимости в многопоточности, то нету смысла один поток разбивать на несколько
0
 Аватар для Mikant
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
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
12.04.2010, 11:33
eugene0001, разбив матрицу вы наоборот замедлите работу. Поймите, параллельно - не значит одновременно. В каждый момент времени выполняется только один поток. Разбив матрицу вы убиваете огромное время на переключение между потоками и замедляетесь. Просто ознакомьтесь с принципами многопоточного программирования и вы поймете свою ошибку
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
12.04.2010, 14:28
обработку матриц можно оптимизировать и без потоков, например универсальный вариант - развернуть матрицу в массив, обычно это дает 10-15% производительности
ну и в зависимости от конкретной задачи еще много чего придумать можно

недавно конкурс был - перемножение матриц, изначальный вариант(без оптимизаций) работал ~18 минут, а в итоге прога победителя сделала те же действия за 7 секунд, такая вот оптимизация
0
 Аватар для Mikant
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2010, 15:35
Помогаю со студенческими работами здесь

Вирус не дает установить антивирусные программы и не дает скачать антивирусы с сайтов
Когда я пытаюсь установить доктор веб либо любой другой антивирус на этапе установки выбивает ошибку и сбрасывается установка Однажды...

Почему float/0 дает infinity а int/0 дает error?
Почему float/0 дает infinity а int/0 дает error?

Шансы на выигрыш на префлопе
Недавно увлекся программированием и друг, увлекающийся покером(холдем), подсказал одну идею для программы. Вот в чем собственно суть. Надо...

В скольких партиях выигрыш более вероятен?
В скольких партиях с равным по силе противником выигрыш более вероятен: в трех партиях из четырех или в пяти из восьми? как правильно...

Выигрыш золотой маски в Assassin's Creed 2
народ помогите!!!! чтоб выиграть золотую маску,надо пройти 3 испытания. 2 прошла,а 3 ни как не могу.вроде совсем не сложно и все флажки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
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(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru