MPI_Comm_create fungsi
Mengekstrak subset sekelompok proses untuk tujuan komputasi Multiple Instruction Multiple Data (MIMD) terpisah dalam komunikator terpisah.
Sintaks
int MPIAPI MPI_Comm_create(
MPI_Comm comm,
MPI_Group group,
_Out_ MPI_Comm *newcomm
);
Parameter
Comm
Komunikator sumber.grup
Grup yang menentukan subset proses yang diminta dalam komunikator sumber.newcomm [out]
Saat kembali, berisi handel ke komunikator baru.
Menampilkan nilai
Mengembalikan MPI_SUCCESS pada keberhasilan. Jika tidak, nilai yang dikembalikan adalah kode kesalahan.
Di Fortran, nilai yang dikembalikan disimpan dalam parameter IERROR .
Fortran
MPI_COMM_CREATE(COMM,GROUP,NEWCOMM,IERROR)
INTEGER COMM, GROUP, NEWCOMM, IERROR
Keterangan
Komunikator yang dibuat fungsi ini dapat dibagi lebih lanjut menjadi subkomputasi paralel dengan menggunakan fungsi MPI_Comm_create atau konstruktor komunikator lainnya. Fungsi MPI_Comm_split adalah fungsi yang lebih umum untuk membuat objek MPI_Comm .
Jika parameter comm mereferensikan intracommunicator, fungsi ini mengembalikan komunikator baru dengan grup komunikasi seperti yang didefinisikan oleh parameter grup . Tidak ada informasi cache yang disebarluaskan dari komunikator sumber ke komunikator baru. Setiap proses harus memanggil dengan parameter grup yang merupakan subgrup grup yang terkait dengan komunikator sumber. Nilai yang mungkin MPI_GROUP_EMPTY. Proses dapat menentukan nilai yang berbeda untuk parameter grup . Jika proses memanggil dengan grup yang tidak kosong, semua proses dalam grup tersebut harus memanggil fungsi dengan nilai yang sama untuk parameter grup , yaitu, anggota yang sama dalam urutan yang sama. Jika tidak, fungsi mengembalikan kesalahan. Hasil ini menyiratkan bahwa kumpulan grup yang ditentukan di seluruh proses harus terputus-putus. Jika proses panggilan adalah anggota grup yang ditentukan dalam parameter grup , maka parameter newcomm mewakili komunikator dengan grup yang ditentukan sebagai grup terkait. Jika proses menentukan grup yang bukan miliknya, misalnya, MPI_GROUP_EMPTY, maka parameter newcomm mengembalikan MPI_COMM_NULL.
Antarmuka mendukung mekanisme asli dari MPI-1.1, yang memerlukan grup yang sama di semua proses comm. Ini diperluas di MPI-2.2 untuk memungkinkan penggunaan subgrup yang terputus-putus untuk memungkinkan implementasi untuk menghilangkan komunikasi yang tidak perlu yang akan dikeluarkan fungsi MPI_Comm_split ketika pengguna sudah mengetahui keanggotaan subgrup yang terputus-putus.
Fungsi MPI_Comm_create bersifat kolektif dan harus dipanggil oleh semua proses dalam grup komunikator sumber. Persyaratan bahwa seluruh grup berpartisipasi dalam panggilan berasal dari masalah berikut:
- Ini memungkinkan implementasi untuk melapisi fungsi MPI_Comm_create di atas komunikasi kolektif reguler.
- Ini memberikan keamanan tambahan, khususnya dalam kasus di mana sebagian kelompok yang tumpang tindih digunakan untuk membuat komunikator baru.
- Ini memungkinkan implementasi untuk menghindari beberapa komunikasi yang terkait dengan pembuatan konteks.
Jika parameter komunikasi mereferensikan interkomunikator, maka komunikator yang dibuat juga merupakan interkomunikator di mana grup lokal hanya terdiri dari proses yang ditentukan dalam parameter grup . Tentukan hanya proses tersebut dalam grup lokal interkomunikator input yang akan menjadi bagian dari komunikator baru dalam parameter grup . Semua proses dalam grup lokal yang sama dari communicator harus menentukan nilai yang sama untuk parameter grup , yaitu, anggota yang sama dalam urutan yang sama. Jika salah satu grup tidak menentukan setidaknya satu proses dalam grup lokal interkomunikator, atau jika proses panggilan tidak disertakan dalam grup, kesalahan akan dikembalikan.
Persyaratan
Produk |
Paket HPC Pack 2012 MS-MPI Redistributable, HpC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package atau HPC Pack 2008 Client Utilities |
Header |
Mpi.h; Mpif.h |
Pustaka |
Msmpi.lib |
DLL |
Msmpi.dll |