|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.06.2014, 18:00 | #1 |
Новичок
Джуниор
Регистрация: 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 по МСК Последний раз редактировалось lasso108; 08.06.2014 в 18:16. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Лабораторная работа | 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 |