Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/10: Рейтинг темы: голосов - 10, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 22.11.2010
Сообщений: 4
1

разбивка функции на параллельные потоки

22.11.2010, 01:03. Просмотров 2076. Ответов 1
Метки нет (Все метки)

В наличии - последовательная функция нахождения обратной матрицы методом Гаусса-Жордана, написанная в Dev-Cpp. Задача состоит в том чтобы разбить эту функцию на потоки с помощью парадигмы портфеля задач, библиотеки pthreads, семафоров и мютексов. Важна реализация именно в Dev-Cpp. Моего знания для этого, увы, недостаточно. Надеюсь на Вашу помощь.
Текст функции:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
void inversion(double **A, int N)
{
    double temp;
    double **E = new double *[N];
    for (int i = 0; i < N; i++)
        E[i] = new double [N];
 
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
        {
            E[i][j] = 0.0;
            if (i == j)
                E[i][j] = 1.0;
        }
    for (int k = 0; k < N; k++)
    {
        temp = A[k][k];
        for (int j = 0; j < N; j++)
        {
            A[k][j] /= temp;
            E[k][j] /= temp;
        }
        for (int i = k + 1; i < N; i++)
        {
            temp = A[i][k];
            for (int j = 0; j < N; j++)
            {
                A[i][j] -= A[k][j] * temp;
                E[i][j] -= E[k][j] * temp;
            }
        }
    }
    for (int k = N - 1; k > 0; k--)
    {
        for (int i = k - 1; i >= 0; i--)
        {
            temp = A[i][k];
            for (int j = 0; j < N; j++)
            {
                A[i][j] -= A[k][j] * temp;
                E[i][j] -= E[k][j] * temp;
            }
        }
    }
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            A[i][j] = E[i][j];
 
    for (int i = 0; i < N; i++)
        delete [] E[i];
    delete [] E;
}
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2010, 01:03
Ответы с готовыми решениями:

Параллельные потоки
Может кто-нибудь подсказать, как написать программу, в которой с какой-то определенной точки...

OPENmp параллельные потоки QT
#include &lt;iostream&gt; #include &quot;omp.h&quot; using namespace std; int main() { #pragma omp...

Параллельные потоки, вектора, переменные
Если у меня работают 2-3 параллельных потока и у всех есть доступ к одному классу. 1) нужно ли...

Параллельные потоки в QT
Здравствуйте! Я новичок в QT,ранее почти не работал с потоками, хотелось бы навести справки как...

1
2 / 2 / 0
Регистрация: 22.11.2010
Сообщений: 4
23.11.2010, 14:07  [ТС] 2
Бог с ним, с портфелем задач. дайте хоть какие-то идеи реализации через семафор и мютексы пожалуйста.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2010, 14:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Параллельные потоки
Доброй ночи! необходимо написать пример, показывающий параллельную активность потоков. вот если я...

Параллельные потоки
Доброго времени суток, знатоки! Есть задача, написать программу, со сложными и объемными...

Таймер и параллельные потоки
Добрый день, сразу оговорюсь, что прошёлся поиском по темам с запросом &quot;таймер&quot;, &quot;потоки&quot; и т.д. ...

Параллельные потоки и исключения
Здравствуйте всем! Хочу спросить у вас по поводу хорошей практики: работа параллельных...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.