
Лаб. 6 ТПО
.docxЛабораторная работа №6
Тестирование производительности, профилирование приложений
Цель работы: Изучить основные методы тестирования производительности и профилирования многопоточных приложений
Задание
1
#include <iostream>
#include <vector>
#include <string>
#include <omp.h>
using namespace std;
void prime_factors(int n) {
//cout << "Простые множители числа " << n << ": ";
string a = "Простые множители числа ";
string n_s = to_string(n);
//printf("Простые множители числа %d: ", n);
a = a + n_s + ": ";
while (n % 2 == 0) {
//cout << 2 << " ";
//printf("2 ");
a = a + "2 ";
n /= 2;
}
for (int i = 3; i * i <= n; i += 2) {
while (n % i == 0) {
//cout << i << " ";
//printf("%d ", i);
string i_s = to_string(i);
a = a + i_s + " ";
n /= i;
}
}
if (n > 2) {
//cout << n << " ";
//printf("%d ", n);
string n2_s = to_string(n);
a = a + n2_s + " ";
}
//cout << endl;
//printf("\n");
a = a + "\n";
printf("%s", a.c_str());
}
int main() {
setlocale(LC_ALL, "Rus");
const int N = 100;
int num_threads = omp_get_max_threads();
int i;
#pragma omp parallel num_threads(num_threads)
{
#pragma omp for private(i)
for (i = 1; i <= N; ++i) {
prime_factors(i);
}
}
return 0;
}
2
3
4
5