Используя Visual Studio VC++, запустить приведенные примеры.
Для всех заданий:
· Входные данные (массивы, матрицы) представляются в виде файлов.
· Коэффициенты, граничные значения, дополнительные параметры задаются как аргументы в командной строке.
· Типы переменных (кроме счетчиков итераций), элементы массивов - float, double.
· Выходные данные (массивы, суммарные значения) сохраняются в файле/файлах.
· Для каждого из заданий необходимо определить время выполнения программы (см. приложение Д), обработки параллельного задания, на однопроцессорной, n-процессорной системах для массивов 100, 1000, 2000, 4000, 6000, 8000, 10000 элементов. Определите ускорение обработки параллельного блока (отношение времени при последовательном выполнении к времени при параллельном).
- Умножение матрицы на заданный коэффициент с последующим суммированием всех элементов матрицы.
- Выбор всех ненулевых элементов двумерного массива в третий.
- Выбор всех элементов массива, значения которых находятся в заданном диапазоне.
- Подсчет строк матрицы отвечающих заданным условиям (i-ый элемент равен 0).
- Усреднение значений заданного кол-ва стоящих рядом элементов вектора. Например, задается число 10 – результат среднее значение по 10-ти элементам. Сохранить результат в массив из 10 элементов. Или число – 60 и вычисляется среднее значение за минуту.
- Реализовать программу умножения «матрица-вектор» (см. приложение В).
Приложения
|
|
Приложение А
- Запустите Microsoft Visual Studio 2005.
- Выбирите пункт в меню File -> New -> Project, или нажмите Ctrl+Shift+N
- В окне New Project в раскрывающемся списке Visual C++ выбирите Win32. В подокне Templates установите Win32 Console Application. Введите имя (Name), например, example1, и место расположения (Location) проекта, например, С:\My, и нажмите кнопку OK. См. Рис.1.
Рис.1
- В открывшемся окне Win32 Application Wizard - example1 нажмите кнопку Next, и затем в Additional options поставьте галочку напротив Empty project. Нажмите кнопку Finish. См. Рис.2.
Рис.2
- Теперь создадим файл с кодом нашего приложения. Выбирите пункт в меню Project -> Add New Item..., или нажмите Ctrl+Shift+A. В категории Visual C++ выбирите подкатегорию Code. В подокне Templates установите С++ File (.cpp). Введите имя файла с расширением .с, например, source.c, и нажмите кнопку Add. См. Рис.3.
Рис.3
- В новом окне введите код на Си. Затем сохраните файл, выбрав пункт меню File -> Save source.c, или нажав Ctrl+S.
- Для построения приложения выбирите пункт меню Build -> Build Solution, или нажмите F7.
- Для запуска приложения выбирите пункт меню Debug -> Start Without Debugging, или нажмите Ctrl+F5.
Приложение Б
- Запустите Microsoft Visual Studio 2005.
- Выбирите пункт в меню File -> New -> Project, или нажмите Ctrl+Shift+N
- В окне New Project в раскрывающемся списке Visual C++ выбирите CLR.
Рис.1
|
|
- Для построения приложения выбирите пункт меню Build -> Build Solution, или нажмите F7.
- Для запуска приложения выбирите пункт меню Debug -> Start Without Debugging, или нажмите Ctrl+F5.
Приложение В
Умножение матрицы размером m x n на вектор c длины n. Результат сохраняется в векторе a длины m.
Получение результирующего вектора предполагает повторения n однотипных операций по умножению строк матрицы B и вектора c. Каждая операция включает поэлементное умножение элементов строки матрицы B и вектора с и последующее суммирование полученных произведений. Общее количество необходимых скалярных операций .
Ниже приведен вариант последовательной программы реализующей умножение матрицы на вектор.