next up previous contents
Next: Работа с группами, контекстами Up: Коммуникаторы и топологии Previous: Алгоритм Фокса   Contents

Коммуникаторы

При реализации алгоритма Фокса становится очевидно, что работа будет облегчена, если можно рассматривать некоторые подмножества процессов как коммуникационную область, по крайней мере, временно. Например, в псевдокоде строки 2 полезно рассматривать в виде коммуникационной области каждый ряд процессов, в то время как в строке 4 в виде коммуникационной области нужно рассматривать каждую строку процессов.

Механизмом, который обеспечивает рассмотрение подмножества процессов MPI в виде коммуникационной области, является коммуникатор. В MPI существует два типа коммуникаторов: интракоммуникаторы и интеркоммуникаторы. Интракоммуникаторы представляют собой набор процессов, которые могут посылать сообщения друг другу и участвовать в коллективных взаимодействиях. Например, MPI_COMM_WORLD - это интракоммуникатор. Каждая строка и колонка процессов в алгоритме Фокса должны формировать интракоммуникатор. Интеркоммуникаторы, как подразумевается в их названии, используются для того, чтобы послать сообщения между процессами, принадлежащими непересекающимся интракоммуникаторам. Так, интеркоммуникатор полезно использовать в среде, которая позволяет динамически создавать процессы: только что созданный набор процессов, которые сформировали интракоммуникатор, может быть связан интеркоммуникатором с оригинальным набором процессов (например, MPI_COMM_WORLD) .

Минимальный (интра-)коммуникатор состоит из группы и контекста. Группа является упорядоченным набором процессов. Если группа состоит из $p$ процессов, то каждому из них в группе назначен уникальный ранг, который является неотрицательным целым числом в диапазоне $0,1,...,p-1$. Контекст представляет собой определенный системой признак, который присоединен к группе. Два процесса, которые принадлежат одной группе и поэтому используют один и тот же контекст, могут связаться между собой. Соединение группы с контекстом является основной функцией коммуникатора. С коммуникатором могут быть связаны и другие данные. В частности, на процессы в коммуникаторе может быть наложена структура или топология, позволяющая осуществить более естественную схему адресации.



2004-06-22