0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 6
1

Найдите все уникальные элементы двумерного массива целых чисел, используя функцию MPI Scatter для рассылки строк массива

09.02.2023, 09:30. Показов 934. Ответов 1

Author24 — интернет-сервис помощи студентам
Добрый день, собственно задание:
Найдите все уникальные элементы двумерного массива целых чисел, используя функцию MPI Scatter для рассылки строк массива.

Получился следующий код в visual studio 2019
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
#include <iostream>
#include <unordered_set>
#include <mpi.h>
 
int main(int argc, char* argv[]) {
    int size, rank;
    MPI_Init(&argc, &argv);
    MPI_Comm_size(MPI_COMM_WORLD, &size);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
 
    int arr[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
 
    int* local_arr = new int[3];
    MPI_Scatter(arr, 3, MPI_INT, local_arr, 3, MPI_INT, 0, MPI_COMM_WORLD);
 
    std::unordered_set<int> unique_elements;
    for (int i = 0; i < 3; i++) {
        unique_elements.insert(local_arr[i]);
    }
 
    int* unique_counts = new int[size];
    int local_unique_count = unique_elements.size();
    MPI_Gather(&local_unique_count, 1, MPI_INT, unique_counts, 1, MPI_INT, 0, MPI_COMM_WORLD);
 
    if (rank == 0) {
        std::unordered_set<int> all_unique_elements;
        int offset = 0;
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < unique_counts[i]; j++) {
                all_unique_elements.insert(local_arr[offset + j]);
            }
            offset += unique_counts[i];
        }
 
        std::cout << "Unique elements:";
        for (auto it = all_unique_elements.begin(); it != all_unique_elements.end(); it++) {
            std::cout << " " << *it;
        }
        std::cout << std::endl;
    }
 
    MPI_Finalize();
 
    return 0;
}
Но он не работает и выкидывает предупреждение
Код
Severity	Code	Description	Project	File	Line	Suppression State	Detail Description
Warning	C6001	Using uninitialized memory '*unique_counts'.	ConsoleApplication15	C:\Users\netd3en\source\repos\ConsoleApplication15\ConsoleApplication15\ConsoleApplication15.cpp	29
Как исправить это?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2023, 09:30
Ответы с готовыми решениями:

Найти все неповторяющиеся элементы двумерного массива целых чисел
Помогите с написанием проги: Найти все неповторяющиеся элементы двумерного массива целых...

Найти все неповторяющиеся элементы двумерного массива целых чисел
Найти все неповторяющиеся элементы двумерного массива целых чисел.В Си.

Найти все неповторяющиеся элементы двумерного массива целых чисел
Помогите решить задачу на двумерный массив на языке С++.

Найти все неповторяющиеся элементы двумерного массива целых чисел
Как сделать это задание через функции Найти все неповторяющиеся элементы Двумерного массива целых...

Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все элементы данного массива с четными номерами, во второ
Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все...

1
324 / 163 / 41
Регистрация: 07.01.2023
Сообщений: 581
09.02.2023, 09:50 2
Цитата Сообщение от Cybseo Посмотреть сообщение
Как исправить это?
Заполнить unique_counts значениями. Хотя бы через bzero
0
09.02.2023, 09:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2023, 09:50
Помогаю со студенческими работами здесь

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

1. Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными э
1. Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного...

Дан массив целых чисел array и целое число k. Нужно вывести все уникальные пары чисел из массива, сумма которых равна k
Помогите с задачей: Дан массив целых чисел array и целое число k. Нужно вывести все уникальные...

Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными элем
Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива....

Написать рекурсивную функцию сложения целых чисел двумерного массива.
Написать рекурсивную функцию сложения целых чисел двумерного массива. помогите пжл:cry:

Считать из файла элементы двумерного массива целых чисел
считать из файла елементы двумерного массива целых чисел размером М*М и найти сумму елементов...


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

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

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