Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2014, 18:00   #1
lasso108
Новичок
Джуниор
 
Регистрация: 08.06.2014
Сообщений: 1
По умолчанию Лабораторная работа по С# (многопоточные вычисления)

Необходимо выполнить задачи по лабораторной работе на С# с применением потоков.

Задача №1
Реализовать два способа обработки элементов двумерных массивов (матриц): последовательный и параллельный. При последовательном способе элементы массива обрабатываются в одном потоке, при параллельном – в m потоках (параметр m должен передаваться в функцию обработки). При этом массив разбивается на m частей, и каждая часть обрабатывается в отдельном потоке. Операция обработки – нахождение суммы двух матриц одинакового размера с элементами типа float и запись значения суммы в первую матрицу. Матрицы размером 1000 столбцов на 100 строк, должны заполняться перед вызовом функции обработки случайными числами. Время выполнения функции обработки должно измеряться нахождением разницы между временем начала и временем окончания обработки. Результаты тестирования должны показывать зависимость времени выполнения операции обработки от параметра m (необходимо провести измерения для m в диапазоне 1…8).


Задача №2
Реализовать последовательный и параллельные (с последовательным перебором простых чисел) алгоритмы поиска простых чисел
Выполнить анализ быстродействия алгоритмов при разном объеме данных, разном числе потоков;
Рассчитать ускорение и эффективность выполнения алгоритмов;
Сделать выводы о целесообразности применения параллельных алгоритмов и необходимости использования синхронизации.


Задача №3
Реализуйте взаимодействие потоков-читателей и потоков-писателей с общим буфером без каких-либо средств синхронизации. Подумайте, почему возникает проблема доступа?
Реализуйте доступ "читателей" и "писателей" к буферу с применением атомарных операторов (Interlocked)
Исследуйте производительность средств синхронизации (измеряйте среднее время обработки одного сообщения) при разном числе сообщений, разном объеме сообщений, разном числе потоков. Сравните производительность с обработкой без синхронизации.
Сделайте выводы об эффективности применения средств синхронизации.


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

Мои контакты:
email: lakum190@yandex.ru
icq: 750443
Оплата Qiwi или WebMoney
Дедлайн - понедельник в 23:00 по МСК
Вложения
Тип файла: zip Параллельное программирование.zip (434.1 Кб, 243 просмотров)

Последний раз редактировалось lasso108; 08.06.2014 в 18:16.
lasso108 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабораторная работа Opelsin Помощь студентам 0 22.01.2013 22:53
Лабораторная работа laventus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 17.01.2013 14:49
Лабораторная работа 777pro777 Паскаль, Turbo Pascal, PascalABC.NET 2 25.10.2011 14:01
Многопоточные вычисления в среде Delphi 7 (базовый уровень) MaryBlack Фриланс 6 25.08.2011 22:07
Лабораторная работа Дініс Фриланс 4 17.11.2009 13:26