Создан заказ №308004
22 октября 2014
Программа на С с использованием WinApi
Как заказчик описал требования к работе:
Разработка многопоточного приложения, демонстрирующего распараллеливание вычислений на примере расчета произведения матриц произвольных размерностей m×n и n×k и использующего механизм управления памятью на основе виртуальной памяти.
Содержание задания.
Разработайте многопоточное приложение, выполняю
щее вычисление произведения матриц A (m×n) и B (n×k). Элементы cij матрицы произведения С = A×B вычисляются параллельно p однотипными потоками. Если некоторый поток уже вычисляет элемент cij матрицы C, то следующий приступающий к вычислению поток выбирает для расчета элемент cij+1, если j<k, и ci+1k, если j=k. Выполнив вычисление элемента матрицы-произведения, поток проверяет, нет ли элемента, который еще не рассчитывается. Если такой элемент есть, то приступает к его расчету. В противном случае отправляет (пользовательское) сообщение о завершении своей работы и приостанавливает своё выполнение. Главный поток, получив сообщения о завершении вычислений от всех потоков, выводит результат на экран и запускает поток, записывающий результат в конец файла-протокола. В каждом потоке должна быть задержка в выполнении вычислений (чтобы дать возможность поработать всем потокам). Синхронизацию потоков между собой организуйте через критическую секцию, мьютекс или событие с автоматическим сбросом. Для хранения перемножаемых матриц и матрицы-результата перемножения используйте функции семейства Win 32 API VitrualXXX() для управления виртуальной памятью. Разработайте необходимый пользовательский интерфейс для ввода размерностей перемножаемых матриц M, N и K, и их элементов; запуска расчета, задания количества вычисляющих потоков, вывода матрицы-произведения. Для ускорения ввода предусмотрите возможность не заполнять нулевые элементы (не заполненные элементы матриц должны сами инициализироваться нулями). Например, для ввода каждой матрицы предусмотрите три поля ввода: номер строки, номер столбца, элемент матрицы (на пересечении этой строки и этого столбца); и кнопку для команды ввода элемента в матрицу. Для вывода результата предусмотрите использование прокруток по строкам и столбцам матрицы-результата с окном вывода 10×10. Разработайте файл протокола, в который должна записываться следующая информация: размерности перемножаемых матриц, их элементы, элементы результата, а также информацию о том, каким потоком (номером) вычислен данный элемент матрицы. В пользовательском интерфейсе предусмотрите кнопку для вызова диалогового окна для выбора файла протокола
подробнее
Заказчик
заплатил
заплатил
100 ₽
Заказчик не использовал рассрочку
Гарантия сервиса
Автор24
Автор24
20 дней
Заказчик принял работу без использования гарантии
23 октября 2014
Заказ завершен, заказчик получил финальный файл с работой
5
Программа на С с использованием WinApi.docx
2014-10-26 15:58
Последний отзыв студента о бирже Автор24
Общая оценка
5
Положительно
Работа сделана правильно, получил зачет. Преподаватель сказал, что удивительно грамотно сделанная работа. Рекомендую автора. Объем работы выполнен большой, без ошибок.