Aracılığıyla paylaş


MPI_Comm_create işlevi

Birden Çok Yönerge Birden Çok Veri (MIMD) hesaplamasını ayrı bir iletişim aracında ayırmak amacıyla bir işlem grubu alt kümesini ayıklar.

Söz dizimi

int MPIAPI MPI_Comm_create(
        MPI_Comm  comm,
        MPI_Group group,
  _Out_ MPI_Comm  *newcomm
);

Parametreler

  • Comm
    Kaynak iletişimci.

  • grup
    Kaynak iletişimcideki işlemlerin istenen alt kümesini tanımlayan grup.

  • newcomm [out]
    Dönüşte, yeni bir iletişimcinin tutamacını içerir.

Döndürülen değer

Başarılı MPI_SUCCESS döndürür. Aksi takdirde, dönüş değeri bir hata kodudur.

Fortran'da, dönüş değeri IERROR parametresinde depolanır.

Fortran

    MPI_COMM_CREATE(COMM,GROUP,NEWCOMM,IERROR)
        INTEGER COMM, GROUP, NEWCOMM, IERROR

Açıklamalar

Bu işlevin oluşturduğu communicator, MPI_Comm_create işlevi veya diğer communicator oluşturucuları kullanılarak paralel alt bileşenlere daha fazla bölünebilir. MPI_Comm_split işlevi, MPI_Comm nesneleri oluşturmak için daha genel bir işlevdir.

comm parametresi bir intracommunicator'a başvuruyorsa, bu işlev grup parametresi tarafından tanımlanan iletişim grubuna sahip yeni bir iletişimci döndürür. Önbelleğe alınmış hiçbir bilgi kaynak iletişimciden yeni communicator'a yayılmaz. Her işlem, kaynak iletişim aracıyla ilişkili grubun alt grubu olan bir grup parametresiyle çağırmalıdır. Olası bir değer MPI_GROUP_EMPTY. İşlemler grup parametresi için farklı değerler belirtebilir. Bir işlem boş olmayan bir grupla çağırırsa, o gruptaki tüm işlemler işlevi grup parametresi için aynı değerlerle, yani aynı sırayla aynı üyelerle çağırmalıdır. Aksi takdirde işlev bir hata döndürür. Bu sonuç, işlemler arasında belirtilen grup kümesinin kopuk olması gerektiğini gösterir. Çağıran işlem grup parametresinde belirtilen grubun bir üyesiyse , newcomm parametresi ilişkili grubu olarak belirtilen gruba sahip bir communicator'ı temsil eder. Bir işlem ait olmadığı bir grubu belirtirse (örneğin, MPI_GROUP_EMPTY) newcomm parametresi MPI_COMM_NULL döndürür.

Arabirim, tüm iletişim işlemlerinde aynı grubu gerektiren MPI-1.1'den özgün mekanizmayı destekler. MPI-2.2'de genişletildi ve uygulamaların MPI_Comm_split işlevinin kopuk alt grupların üyeliğini zaten bilmesi durumunda ortaya çıkaracağı gereksiz iletişimi ortadan kaldırmasına olanak tanımak için kopuk alt grupların kullanılmasına olanak sağlandı.

MPI_Comm_create işlevi topludur ve kaynak iletişimci grubundaki tüm işlemler tarafından çağrılmalıdır. Tüm grubun aramaya katılma gereksinimi aşağıdaki sorunlardan gelir:

  • Uygulamanın MPI_Comm_create işlevini normal toplu iletişimlerin üzerine katmanlamasını sağlar.
  • Özellikle yeni iletişimciler oluşturmak için kısmen çakışan grupların kullanıldığı durumlarda ek güvenlik sağlar.
  • Uygulamaların bağlam oluşturmayla ilgili bazı iletişimlerden kaçınmasına izin verir.

comm parametresi bir intercommunicator'a başvuruyorsa, oluşturulan communicator aynı zamanda yerel grubun yalnızca grup parametresinde belirtilen işlemlerden oluştuğu bir iletişim aracıdır. Yalnızca grup parametresindeki yeni iletişimcinin bir parçası olacak giriş iletişim aracısının yerel grubunda yer alan işlemleri belirtin. Communicator'ın aynı yerel grubundaki tüm işlemler grup parametresi için aynı değeri, yani aynı üyeleri aynı sırada belirtmelidir. Gruplardan biri, ara iletişim aracısının yerel grubunda en az bir işlem belirtmezse veya çağıran işlem gruba dahil değilse bir hata döndürülür.

Gereksinimler

Ürün

HPC Pack 2012 MS-MPI Yeniden Dağıtılabilir Paketi, HPC Pack 2008 R2 MS-MPI Yeniden Dağıtılabilir Paketi, HPC Pack 2008 MS-MPI Yeniden Dağıtılabilir Paketi veya HPC Pack 2008 İstemci Yardımcı Programları

Üst bilgi

Mpi.h; Mpif.h

Kitaplık

Msmpi.lib

DLL

Msmpi.dll

Ayrıca bkz.

MPI Communicator İşlevleri

MPI_Comm_split