Aracılığıyla paylaş


MPI_Comm_split işlevi

Belirtilen communicator ile ilişkili grubu belirtilen sayıda kopuk alt gruba böler.

Söz dizimi

int MPIAPI MPI_Comm_split(
        MPI_Comm comm,
        int      color,
        int      key,
  _Out_ MPI_Comm *newcomm
);

Parametreler

  • Comm
    Bölünecek iletişimci.

  • Renk
    Çağrı işleminin atanacağı yeni iletişimci. Renk değeri negatif olmamalıdır.

    Bir işlem MPI_UNDEFINEDrenk değerini belirtirse işlev, çağırma işlemine newcomm parametresinde MPI_COMM_NULL döndürür.

  • Anahtar
    Yeni iletişimci grubundaki çağırma işleminin göreli sırası. Anahtar ve renk parametrelerini kullanma hakkında ayrıntılı bilgi için bkz. Açıklamalar.

  • 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_SPLIT(COMM,COLOR,KEY,NEWCOMM,IERROR)
        INTEGER COMM, COLOR, KEY, NEWCOMM, IERROR

Açıklamalar

Bu kolektif bir işlevdir, ancak her işlem renk ve anahtar parametreleri için farklı değerler belirtebilir.

Bu, tek bir iletişim halindeki işlem grubunu rastgele sayıda alt gruba bölmeye yönelik son derece güçlü bir mekanizmadır. Alt grupların sayısı, tüm işlemler üzerinde belirtilen renk sayısına göre belirlenir. Sonuçta elde edilen iletişimciler çakışmaz. Bir iletişimciyi bu şekilde alt bölümlere ayırın, çok kılavuzlu veya doğrusal cebir gibi bir hesaplama hiyerarşisi tanımlamak için kullanışlıdır.

Her alt grup , renk parametresi için aynı değeri belirten tüm işlemleri içerir. Her alt grup içinde, işlemler anahtar parametresinin değeriyle tanımlanan sırada sıralanır ve eski gruptaki derecelerine göre bağıntılar kesilir.

Bir intracommunicator communicator ile çağrısı, MPI_COMM_CREATE(comm, group, new-comm) grup üyeleri olan işlemlerin, renk parametresi için tüm ayrık grupların benzersiz bir numaralandırmasına göre grubun numarasını ve anahtar parametresinin gruptaki derecesini belirttiği çağrısına eşdeğerdirMPI_COMM_SPLIT(comm, color, key, newcomm). Grubun üyesi olmayan tüm işlemler renk parametresi için MPI_UNDEFINED belirtir.

Herhangi bir renk için anahtar değerlerinin benzersiz olması gerekmez. MPI_Comm_split işlevi, işlemleri anahtar parametresinin değerine göre sıralar ve kaynakları kaynak gruptaki göreli derecelerine göre sıralar. Tüm anahtar parametreleri için aynı değer belirtilirse, belirli bir renkteki tüm işlemler üst gruplarında sahip oldukları göreli sıralama sırasına sahiptir.

intracommunicators için , MPI_Comm_split ve MPI_Comm_create işlevleri bir iletişim grubunu kopuk alt gruplara bölmek için benzer bir özellik sağlar.

MPI_Comm_split işlevi, bazı işlemler kendi grubundaki diğer üyelerin tam bilgisine sahip olmadığında, ancak tüm işlemler ait oldukları grubun rengine sahip olduğunda kullanılır. Bu durumda, MPI uygulaması iletişim yoluyla diğer grup üyelerini bulur.

MPI_Comm_create işlevi, tüm işlemler kendi grup üyelerinin tam bilgilerine sahip olduğunda kullanılır. Bu durumda, MPI uygulaması grup üyeliğini bulmak için gereken ek iletişimi önleyebilir.

MPI_Comm_split tarafından oluşturulan communicator'lar çakışamaz. Bu sınırlamanın üstesinden gelmek için MPI_Comm_split işlevini birden çok kez çağırabilirsiniz. Bu şekilde birden çok çakışan iletişim yapısı oluşturabilirsiniz. Bu tür bölme işlemlerinde renk ve anahtar parametrelerin yaratıcı kullanımı önerilir.

MPI_Comm_split işlevinin bir iletişim aracı üzerindeki sonucu, sol tarafta bu işlemlerin sağdaki işlemlerle aynı renkte olması ve yeni bir iletişim aracı oluşturmak için birleştirilmesidir. Anahtar parametresi, intercommunicator'ın her tarafındaki işlemlerin göreli derecesini tanımlar. MPI_COMM_NULL tutamacını içeren yeni bir iletişimci, renk olarak MPI_UNDEFINED belirten veya iletişimcinin yalnızca bir tarafında belirtilen bir renk belirten işlemlere 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_create