Форум программистов, компьютерный форум, киберфорум
OpenMP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 7
1

Вычисление функции с использованием OpenMP на нескольких ядрах

09.02.2014, 22:57. Показов 1608. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана функция https://www.cyberforum.ru/cgi-bin/latex.cgi?y=\frac{{x}^{2}-7x+10}{{x}^{2}-8x+12} на промежутке [1; 13]. Нужно вычислить её значения и записать время выполнения программы на 1, 2, 3, 4 ядрах. Я написал программу, которая вычисляет эту функцию, а также использовал omp_get_wtime() для нахождения времени. Но как именно заставить работать программу на определённом количестве ядер?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <omp.h>
 
using namespace std;
 
void main() {
    int N = 12, z;
    double x, y, k, h, clockStart, clockStop, tick;
 
    cout << "N = 12" << endl;
    cout << "k = N * 10^z. Enter z: "; cin >> z;
 
    k = N * pow(10, z);
    h = (double)N / k; //Шаг
    clockStart = omp_get_wtime(); //Начальное время
 
 
    for (x = 1; x <= 13; x = x + h) {
        y = (pow(x, 2.0) - 7 * x + 10) / (pow(x, 2.0) - 8 * x + 12);
        cout << "x = " << x << "; " << "y = " << y << endl;
    }
 
    clockStop = omp_get_wtime(); //Конечное время
    tick = omp_get_wtick(); //Точность таймера
 
    cout << "\nSeconds: " << (clockStop - clockStart) << endl;
    cout << "Timer accuracy: " << tick << endl << endl;;
 
    system("PAUSE");
}
Миниатюры
Вычисление функции с использованием OpenMP на нескольких ядрах  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2014, 22:57
Ответы с готовыми решениями:

Вычисление с использованием нескольких таблиц
UPDATE Отдел_ Сотрудники SET Оклад = Оклад +1000 WHERE Дата_ приема &lt; 2003...

Выполнение "асинхронного" кода на нескольких ядрах
Вопрос таков: Насколько мне известно, код использующий Begin*/End* на самом деле не выполняется...

Вычисление факториала с использованием функции
function fact(n:byte):integer; var k : longint; j : byte; begin k:= 1; for j:= 2 to n do...

Вычисление целочисленной функции для нескольких аргументов
Как можно реализовать решение этой задачи на языке Ассемблер?

2
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 7
09.02.2014, 23:06  [ТС] 2
На сколько я понял, если допишу #pragma omp parallel num_threads(x), где x - количество потоков, то программа будет выполняться на каждом потоке, а вроде как нужно, чтобы она разделялась между потоками?
Миниатюры
Вычисление функции с использованием OpenMP на нескольких ядрах  
0
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 7
11.02.2014, 03:32  [ТС] 3
Всё, отбой. Оказалось, что при выполнении программы на кластере через PuTTY можно выбирать количество ядер.
0
11.02.2014, 03:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2014, 03:32
Помогаю со студенческими работами здесь

Вычисление пределов для функции нескольких переменных
Помогите решить пример, как дорешать, если начало конечно правильное ?

Вычисление функции с использованием разложения в ряд
Привет всем, помогите с программой: Необходимо разработать программу, вычисляющую значение...

Запрограммируйте с использованием рекурсии вычисление функции
Помогите пожалуйста решить задачу! Запрограммируйте с использованием рекурсии вычисление функции...

Вычисление функции с использованием разложения в ряд
Вычисление функции с использованием разложения в ряд Вычислить и вывести на экран в виде таблицы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru