Задачи по теме "Параллельное программирование: нити"
В качестве образца используйте программу приведения матрицы
к ступенчатому виду, использующую параллельный алгоритм Гаусса
с помощью нитей, а также мьютексы и условные переменные
в качестве объектов синхронизации. Матрица читается из файла
"input.txt", полученная ступенчатая матрица записывается
в файл "output.txt". Программа просит человека ввести число
нитей и в конце печатает время выполнения алгоритма в миллисекундах.
Исходный код программы:
Программа генерации случайной матрицы и записи ее в файл: Пример выполнения: /home/vvb/Threads>g++ -o generateMatrix generateMatrix.cpp /home/vvb/Threads>./generateMatrix Generating a Random Matrix Enter the number of matrix rows and columns: 8 8 Enter the range of matrix elements (minValue, maxValue): -1 1 -0.124 0.446 0.105 0.165 0.234 0.988 -0.998 -0.401 -0.169 0.469 0.425 0.534 -0.430 0.054 0.116 -0.066 0.197 -0.868 0.549 0.170 0.555 -0.768 0.081 0.833 -0.837 0.447 0.235 0.416 0.688 -0.306 0.416 0.841 0.658 -0.533 -0.937 0.598 -0.326 0.425 -0.262 0.023 0.966 -0.072 -0.162 -0.452 -0.744 -0.954 0.580 0.473 -0.881 0.165 0.102 0.823 -0.268 0.993 -0.554 0.746 -0.268 0.823 -0.369 -0.936 -0.803 -0.060 0.513 0.532 Enter the name of file to write a matrix in: input.txt Writing the random matrix to the file input.txt /home/vvb/Threads>g++ -o parallelMatrixSTL parallelMatrixSTL.cpp /home/vvb/Threads>./parallelMatrixSTL Matrix of size 8*8: 8 8 -0.124 0.446 0.105 0.165 0.234 0.988 -0.998 -0.401 -0.169 0.469 0.425 0.534 -0.430 0.054 0.116 -0.066 0.197 -0.868 0.549 0.170 0.555 -0.768 0.081 0.833 -0.837 0.447 0.235 0.416 0.688 -0.306 0.416 0.841 0.658 -0.533 -0.937 0.598 -0.326 0.425 -0.262 0.023 0.966 -0.072 -0.162 -0.452 -0.744 -0.954 0.580 0.473 -0.881 0.165 0.102 0.823 -0.268 0.993 -0.554 0.746 -0.268 0.823 -0.369 -0.936 -0.803 -0.060 0.513 0.532 Enter number of threads: 4 Row echelon form of matrix: 8 8 0.966 -0.072 -0.162 -0.452 -0.744 -0.954 0.580 0.473 0.000 -0.853 0.582 0.262 0.707 -0.573 -0.037 0.737 0.000 0.000 -1.157 0.757 -0.220 1.400 -0.636 -0.717 0.000 0.000 0.000 1.059 -0.317 0.437 -0.192 -0.028 0.000 0.000 0.000 0.000 -0.732 -0.105 0.041 1.262 0.000 0.000 0.000 0.000 0.000 -1.173 0.796 2.072 0.000 0.000 0.000 0.000 0.000 0.000 -0.523 2.126 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.433 Rank of matrix: 8 Determinant of matrix: -0.196517 Computation time: 1.011 ms Список задачСтуденты с нечетными номерами по журналу решают первую задачу, с четными — вторую.
|