Есть проблема: на сервере freeBSD работает скрипт на перле, периодически, из - за нехватки ОЗУ скрипты вылетает, (раз в месяц, раз в неделю), необходима программа, или решение, которые при данной ситуации перезапускали скрипт, например каждые ...
Модификация параллельной программы
Прошу оказать помощь в модификации существующей параллельной программы, написанной с использованием библиотеки OpenMP, в такую же программу, использующую библиотеку MPI.
Существует программа вычисления степени полинома, реализованная с помощью OMP.
-------------------------------------------
--- Необходимо реализовать ввод степени полинома пользователем (у меня реализовано в самом коде программы).
--- Реализовать взаимодействие между процессами. Для этого использовать библиотеку MPI.
Один из вариантов, самый простой - главный процесс ведет диалог с пользователем или считывает входные данные из файла, затем передает данные подчиненным процессам. Подчиненные выполняют действия, возвращают результат главному. Главный собирает результаты, производит суммирование и выводит результат.
Получше вариант - параллельность не только на этапе возведения в степень но и на этапе суммирования. Процессы группируются по два-три, каждый процесс в группе, возведя в степень элемент полинома, передает данные другому процессу, выполняющему суммирование. Группа процессов, выполняющих суммирование передает данные главному процессу, который выполнит окончательное суммирование и выведет результат.
--- Снабдить кодинг программы комментариями.
-------------------------------------------
Кодинг существующей программы:
#include "stdafx.h"
#include
#include
#include
#include
#include
#define N 1000
double a[N];
void GenerateFactor (double *a)
{
int RANGE_MIN = 0;
int RANGE_MAX = 100;
srand( (unsigned)time ( NULL ) );
for (int i=1; i
a = (double) rand() / (double)
RAND_MAX;
};
int main (int argc, char *argv[])
{
double x = 1;
double y = 1, S = 0;
clock_t start, finish;
start = clock();
GenerateFactor(a);
#pragma omp parallel sections shared(S), private(x,y), num_threads(2)
{
#pragma omp section
{
printf_s("Hello from thread %d\n",
omp_get_thread_num());
for (int i=1; i
{
x = (i-0.5) / N;
y = 1;
for (int j=0; j
{
S = S + a[j]*y;
y = y * x;
}
}
}
#pragma omp section
{
printf_s("Hello from thread %d\n",
omp_get_thread_num());
for (int i=(int)N/2; i
{
x = (i-0.5) / N;
y = 1;
for (int j=0; j
{
S = S + a[j]*y;
y = y * x;
}
}
}
};
printf("S = %f\n", S);
finish = clock();
printf("Time of calculation is %f\n",
(double) (finish - start) / CLOCKS_PER_SEC);
getch();
return 0;
}
Среда работы - Visual 2005-й
Заранее благодарю за отклик!
Заявки фрилансеров
Похожие заказы
- Системное программирование1 исполнительЗавершен15 лет назад
Нужно написать небольшое приложение для работы с браузером Firefox (конкретно - экспорт сертификатов) Оставляйте ICQ для обсуждения проекта
Системное программирование2 заявкиЗакрыт15 лет назад- $500
Нужно под QT (на C++ под Windows или под Linux) научиться работать с шифрованными базами на основе SQLite. Как вариант, предлагается использовать SQLCipher - нужно только его скомпилировать под QT и написать пример создания ...
Системное программирование1 исполнительЗакрыт15 лет назад Имеется железо на базе HP Proliant DL160 G5 процессор Xeon 2ghz, оперативной памяти 11Г, 2 диска SATA, 2 быстрых диска SAS На этом железе действующий форум phpBB3 с Gallery2 а так же несколько не ...
Системное программирование4 заявкиЗакрыт15 лет назад- $5000
Имеющаяся программа управляет несколькими устройствами через TCP/IP. Её интерфейса не хватает для удобного выполнения всех стоящих задач. Стоит задача дописать недостающий функционал используя все возможные средства. Некоторая работа уже проведена, но квалификация ...
Системное программирование9 заявокЗакрыт15 лет назад - $100
Задача приложения - выводить сообщение на экран (MessageBox) при попытке вставить что-либо из буфера обмена. Если в буфере обмена содержится текст - то вывести его также в сообщение. Должно работать во всех приложениях, включая консольные.
Системное программирование1 исполнительЗакрыт15 лет назад Здравствуйте! Встала задача сохранения входящих и исходящих писем с компьютеров сотрудников. Сейчас на всех компьютерах theBat и прямое подключение к pop3/smtp хостинга. Если с входящими письмами ...
Системное программирование7 заявокЗакрыт15 лет назад- $1000
Необходимо адаптировать ядро Linux к электронной книжке на ARM-архитектуре. По большему счету все и так работает, кроме звука, но очень нестабильно. Нужен человек "железячник-ядерщик", готовый заняться отладкой и доработкой ядра. Фронт задач: ...
Системное программирование3 заявкиЗакрыт15 лет назад Нужен человек который сможет написать простенькое серверное приложение для red5, которое будет делать запрос к mysql. Стучатся сразу лучше в аську.
Системное программирование2 заявкиЗакрыт15 лет назадДоработка утилиты http://www.google.com/codesearch?q=freephg+lang:c%2B%2B&hl=en
Системное программирование1 заявкаЗакрыт15 лет назад