Методы и средства планирования вычислений в системах автоматизированного динамического распараллеливания программ
В последнее время для решения вычислительно сложных задач широкое применение получают территориально распределенные высокопроизводительные вычислительные установки. Такие вычислительные комплексы характеризуются неоднородностью аппаратного и программного обеспечения, различной производительностью узлов и коммуникационных каналов, и, как следствие, высокой вероятностью отказов. Как показывает… Читать ещё >
Содержание
- 1. Планирование в системах динамического распараллеливания программ
- 1. 1. Задача динамического планирования
- 1. 2. Локальность исполнения
- 1. 3. Методы планирования
- 1. 4. Автоматизированное динамическое распараллеливание программ
- 1. 4. 1. MPI
- 1. 4. 2. Cilk
- 1. 4. 3. Charm++
- 1. 4. 4. GUM
- 1. 4. 5. Т-подход
- 1. 4. 6. Программный комплекс NewTS
- 2. 1. Модель процесса исполнения Т-программы
- 2. 2. Жадные планы исполнения
- 2. 3. Модель с различной производительностью узлов
- 2. 4. Распределенное планирование
- 2. 5. Балансирующий планировщик
- 2. 6. Планировщик Fishing
- 2. 6. 1. Алгоритм планировщика Fishing
- 2. 6. 2. Выбор узла для запроса задачи
- 2. 6. 3. Выбор узла для запроса задачи в распределенной системе
- 2. 7. Режим неблокирующего исполнения
- 2. 8. Выводы
- 3. 1. Пример мелкозернистой программы
- 3. 2. Методы включения задач
- 3. 2. 1. Ленивое порождение задач
- 3. 2. 2. Ленивый RPC
- 3. 2. 3. Метод включения, основанный на анализе загрузки
- 3. 3. Механизмы включения задач в NewTS
- 3. 3. 1. Корректность включения задач
- 3. 4. Реализация включения задач в NewTS
- 3. 4. 1. Препроцессор NewTS
- 3. 4. 2. Включение задач
- 3. 4. 3. Корректное включение задач
- 3. 4. 4. Оптимизация включения задач
- 3. 4. 5. Дальнейшая оптимизация
- 3. 4. 6. Автоматический выбор гранулы параллелизма
- 4. 1. Очередь задач
- 4. 2. Интерфейс планировщика
- 4. 3. Интерфейс модуля планирования
- 4. 4. Реализация балансирующего планировщика
- 4. 5. Реализация планировщика Fishing
- 5. 1. Тестовая программа ЕР
- 5. 2. Программа RT
- 5. 3. Программный комплекс Vortex. Ill
- 5. 4. Модельная программа prgdemo
- 5. 5. Зависимость от числа задач
- 5. 6. Параметры планировщика Fishing
- 5. 7. Режим неблокирующего исполнения
- 5. 8. Испытания на неоднородной системе
- 5. 9. Выводы
Методы и средства планирования вычислений в системах автоматизированного динамического распараллеливания программ (реферат, курсовая, диплом, контрольная)
Актуальность темы
.
В последние годы наблюдается значительный рост производительности вычислительных систем различной архитектуры, от сильносвязанных суперкомпьютерных установок до распределенных слабосвязанных систем, создаваемых по технологии GRID [43]. Для решения многих практически важных, и, как правило, вычислительно сложных задач применяются параллельные программы, исполняемые на многопроцессорных установках.
Одним из наиболее популярных средств для создания параллельных программ в настоящее время является стандарт MPI [57]. Однако он обладает недостатками, затрудняющими написание программ на основе алгоритмов, в которых структура вычислительного графа, время исполнения отдельных частей и зависимости между ними неизвестны на стадии написания программы. Назовем такие приложения и алгоритмы обладающими внутренним динамическим параллелизмом (или, более кратко — динамическим параллелизмом). Значительные трудности возникают при использовании MPI-программ на существенно неоднородной вычислительной среде. Стандарт MPI определяет такие низкоуровневые операции, как отправка и прием сообщений с отдельного узла, а также пересылка сообщений и синхронизация процессов взаимодействия между группой узлов. Применение MPI позволяет создавать эффективные программы для решения многих прикладных задач, в первую очередь — обладающих внутренним статическим параллелизмом. В то же время, в стандарте MPI не описаны средства динамической балансировки вычислительной нагрузки. При использовании MPI для приложений с динамическим параллелизмом эти механизмы должны быть реализованы в приложении.
Одним из альтернативных подходов к созданию параллельных программ является их автоматизированное динамическое распараллеливание [5].
При его использовании для приложений с динамическим параллелизмом передача данных, синхронизация процессов и распределение нагрузки выполняются автоматически, без указаний со стороны пользователя. Автоматизированное динамическое распараллеливание существенно сокращает время, которое требуется для реализации алгоритма. Оно уменьшает трудоемкость разработки для многих классов приложений. К таким, в первую очередь, относятся приложения, в том числе отмеченные выше, в которых на стадии написания программы распределить нагрузку между узлами вычислительного поля невозможно или очень сложно. К их числу относятся, например, задачи, сводящиеся к поиску слабоструктурировнных данных с использованием графовых моделей, или игровые задачи со сложными стратегиями.
В последнее время для решения вычислительно сложных задач широкое применение получают территориально распределенные высокопроизводительные вычислительные установки [20]. Такие вычислительные комплексы характеризуются неоднородностью аппаратного и программного обеспечения, различной производительностью узлов и коммуникационных каналов, и, как следствие, высокой вероятностью отказов. Как показывает практика, использование традиционных методов статического распараллеливания на таких установках неэффективно.
Под динамическим распараллеливанием в контексте настоящей работы понимается способ создания параллельных программ, при котором распределение вычислений между узлами системы происходит в течение всего времени исполнения программы. Динамическое распараллеливание позволяет преодолеть недостатки, присущие традиционным методам распараллеливания в распределенных системах.
Ключевым компонентом в средствах динамического распараллеливания является модуль планирования задач (далее именуемый планировщиком). Под планированием будем понимать процесс распределения вычислительной работы1 между узлами с целью уменьшения времени исполнения программы.
К настоящему времени разработано несколько средств автоматизированного динамического распараллеливания вычислительных приложений. Многие из них, например, GUM [47] и MultiLisp [48], работают с программами на функциональных языках. Программный комплекс NewTS [7] является средством автоматизированного динамического распараллеливания программ, основанным на языках С и С++. Использование в качестве базовых широко распространенных, императивных языков программи.
1Под вычислительной работой здесь будем понимать процесс вычислений, обеспечивающих решение одной из подзадач в рамках исходной прикладной программы. рования позволяет создавать с его помощью высокопроизводительные параллельные программы для задач с динамическим параллелизмом. Такой подход облегчает перенос существующих последовательных программ на вычислительные комплексы с новой архитектурой. Важной особенностью Ке-уТЭ является тот факт, что программы для него могут исполняться как на локальных, сильносвязанных установках, так и на распределенных, в том числе гетерогенных, вычислительных кластерах. Последнее обстоятельство позволяет использовать Ме? ТЭ в качестве удобного объекта для тестирования и апробации новых подходов к планированию вычислений на комплексах с разной архитектурой. Вместе с тем, планировщик, который использовался в первых версияхТелуТБ, обладал рядом существенных недостатков, затруднявших его применение на системах с большим числом вычислительных узлов, а также на гетерогенной вычислительной среде.
В силу изложенных выше причин, разработка алгоритмов планирования для средств автоматизированного динамического распараллеливания приложений, способных эффективно работать в условиях распределенной гетерогенной среды, а также их программная реализация в программном комплексе ЫечуТЭ, составляющие суть диссертационной работы, являются актуальными задачами.
Цели и задачи работы.
Целью диссертационной работы является разработка методов и средств планирования в системах автоматизированного динамического распараллеливания приложений и их реализация в составе программного комплекса ЫеюТБ. Для достижения этой цели были поставлены следующие задачи:
1. математическое описание процессов исполнения и планирования параллельных вычислительных приложений;
2. исследование свойств и разработка эффективных алгоритмов планирования процессов выполнения параллельных приложений с динамическим параллелизмом;
3. реализация разработанных алгоритмов в составе модуля планирования системы автоматизированного динамического распараллеливания программ ^луТЭ;
4. исследование и разработка методов эффективного и корректного исполнения мелкозернистых [28] параллельных программ.
Основные результаты работы.
В диссертационной работе получены следующие основные результаты:
• разработана математическая модель, представляющая параллельную программу в виде ориентированного ациклического графа подзадач и описывающая процесс исполнения такой программы в распределенных системах и в системах с различной производительностью узловполучены оценки времени исполнения параллельных программ в таких системах;
• разработаны и программно реализованы с использованием системы автоматизированного динамического распараллеливания Кеч^ТЭ два алгоритма планирования, основанные на методах балансировки нагрузки и заимствования заданий, уменьшающие нагрузку на коммуникационную сеть и общее время исполнения вычислительных приложений, в том числе в распределенных системах;
• разработан и реализован в системе МетеТЭ механизм исполнения порождаемых задач, основанный на анализе загруженности узлов, снижающий системные накладные расходы при исполнении мелкозернистых параллельных программ.
Научная новизна работы.
Научной новизной обладают следующие результаты диссертации:
• математическая модель, описывающая процесс исполнения параллельной программы в распределенных и неоднородных системах, и оценка эффективности исполнения параллельных программ;
• два алгоритма планирования для системы автоматизированного динамического распараллеливания приложений, реализованные в которые позволяют повысить утилизацию ресурсов вычислительных систем и уменьшить время исполнения параллельных программ.
Практическая значимость.
Разработанные алгоритмы позволяют эффективно исполнять широкий класс параллельных вычислительных программ. Созданная автором программная реализация этих алгоритмов для системы NewTS была применена для распараллеливания ряда практически значимых вычислительных задач, в том числе:
• программного комплекса Vortex [8, 9], предназначенного для моделирования двумерного нестационарного обтекания твердых тел потоком несжимаемой среды;
• приложения RT, используемого для построения высококачественных изображений методом трассировки лучей;
• приложения insertdoc, для обработки и индексирования текстовых документов, входящего в состав поисковой системы АСИО [3, 4].
Результаты применения подтвердили эффективность и масштабируемость разработанных алгоритмов.
Доклады и печатные публикации.
Основные положения диссертации докладывались на международных научных конференциях студентов, аспирантов и молодых ученых «Ломоносов-2005», «Ломоносов-2006» и «Ломоносов-2007», на третьей международной конференции по проблемам управления МКПУ-2006 (Москва, ИПУ РАН, 20−22 июня 2006 года), на IX международной конференции «Проблемы функционирования информационных сетей» ПФИС-2006 (Новосибирск, 31 июля — 3 августа 2006 года), а также на семинаре «Проблемы современных информационно-вычислительных систем» под руководством д.ф.-м.н., проф. В. А. Васенина (два доклада в течении 2005;2007 г. г.).
По материалам диссертации опубликовано семь работ [18, 17, 16, 15, 11, 12, 19], две из которых — в журналах, рекомендованных ВАК.
В работе [11], опубликованной совместно с И. М. Коневым, автору настоящей диссертации принадлежат разделы «Введение», «Планирование исполнения программ» и «Включение задач».
Структура работы.
Работа состоит из введения, пяти глав, заключения и списка литературы. Общий объем диссертации — 136 страниц.
Список литературы
включает 77 наименований.
Заключение
.
В диссертационной работе получены следующие результаты.
• Разработана математическая модель, описывающая процесс исполнения параллельной программы в распределенных и неоднородных системах.
• В рамках разработанной математической модели получены оценки эффективности исполнения параллельных программ.
• Предложены и реализованы с использованием системы автоматизированного динамического распараллеливания Хе^уТЭ два алгоритма планирования достигающие высокой эффективности исполнения ряда практически важных вычислительных приложений, в том числе в распределенных системах. Эффективность разработанных алгоритмов подтверждена измерениями.
• Разработан и реализован в программном комплексе Ке’уТ8 механизм включения задач, обеспечивающий эффективное исполнения мелкозернистых параллельных программ. Его применение к программе создания трехмерных изображений ЫТ обеспечило автоматический выбор гранулы параллелизма в этой программе. Эффективность метода включения задач подтверждена измерениями производительности.
Список литературы
- Афонин С. А., Козицын А. С. Поиск текстовых документов с учетом их логической структуры // Тр. XII Междунар. конф. по вычислительной механике и современным прикладным программным системам (ВМСППС).— Владимир: МАИ, 2003. — С. 74.
- Васенин В. А., Афонин С. А. К разработке моделей эффективного поиска информации в сети интернет // Тр. Всерос. науч. конф. «Научный сервис в сети Интернет 2003» (22−27 сентября 2003, г. Новороссийск). М.: Изд-во МГУ, 2003. — С. 252−255.
- Васенин В. А., Водомеров А. Я., Инюхин А. В. Средства автоматизированного динамического распараллеливания программ на основе сочетания императивных и функциональных механизмов // Информационные Технологии. — 2007. — № 5. — 32 с.
- Васенин В. А., Роганов В. A. GRACE: распределенные приложения в интернет // Открытые системы. — 2001. — № 5. — С. 29−33.
- Водомеров А. Н. Методы и средства автоматизированного распараллеливания приложений в распределенной среде: Дис. .канд. физ.-мат. наук: 05.13.11 / МГУ им. М. В. Ломоносова. — Москва, 2007. — 144 с.
- Григоренко Д. А. Вопросы программной реализации лагранжевых вихревых методов // Избр. тр. XVII Междунар. Интернет-конференции молодых ученых и студентов по проблемам машиноведения (МИКМУС-2005). М.: Изд-во ИМАШ РАН, 2006. — С. 121−124.
- Григоренко Д. А. Реализация и применение программного комплекса моделирования авторотации оперенного тела / / Системы управления и информационные технологии. — 2007. № 3.3(29). — С. 337−341.
- Конев И. М., Степанов Е. А. Автоматизация динамического распараллеливания программ: планирование, управление памятью, работа в гетерогенной среде // Приложение к журналу «Информационные технологии», — № 10. М.: Изд-во «Новые технологии», 2007. 32 с.
- Конев И. М., Степанов Е. А. Автоматизация динамического распараллеливания программ: планирование, управление памятью, работа в гетерогенной среде // Информационные технологии. — 2007. — № 10. — С. 71−73.
- Межведомственный Суперкомпьютерный Центр Российской Академии Наук Электронный ресурс. — Электрон, текстовые дан. — Режим доступа: http://www.jscc.ru/, свободный.
- Моделирование нестационарных нагрузок при движении тел в вязкой жидкости: Отчет № 4775 / С. В. Гувернюк, Г. Я. Дынникова, П. Р. Андронов и др.- Ин-т механики МГУ. — М., 2005.- 93 с.
- Степанов Е. А. Метапланирование в открытой Т-системе: механизмы, модели и инструментальные средства // Тез. докл. науч. конф. «Ломоносовские чтения» (18−28 апреля, МГУ им. Ломоносова, Москва). — М.: Изд-во Московского университета, 2005. — С. 174.
- Степанов Е. А. Планирование в OpenTS — системе автоматического динамического распараллеливания // Информационные технологии и программирование: Межвузовский сборник статей. Вып. 2 (14). — М.: МГИУ, 2005. С. 31−42.
- Т-система с открытой архитектурой / С. М. Абрамов, А. И. Адамович, А. В. Инюхин и др. // Тр. Междунар. науч. конф. «Суперкомпьютерные системы и их применение SSA'2004» (26−28 октября 2004, г. Минск).- Минск: ОИПИ НАН Беларуси, 2004,-С. 18−22.
- Эндрюс Г. Основы многопоточного, параллельного и распределенного программирования: Пер. с англ. — М. и др.: Вильяме, 2003.— 512 с.
- Acar U. A., Blelloch G. Е., Blumofe R. D. The data locality of work stealing // SPAA '00: Proceedings of the twelfth annual ACM symposium on Parallel algorithms and architectures. New York, NY, USA: ACM Press, 2000. — Pp. 1−12.
- Afonin S., Shundeev A., Roganov V. Semistructured data search using dynamic parallelisation technology // Proceedings of the 26th International Convention MIPRO-2003, Opatija, Croatia / Ed. by P. Biljanovic, K. Skala. 2003. — Pp. 152−157.
- Amdahl G. M. Validity of the single-processor approach to achieving large scale computing capabilities // AFIPS Conference Proceedings vol. 30 (Atlantic City, N.J., Apr. 18−20).— Reston, Va.: AFIPS Press, 1967. — Pp. 483−485.
- Andersen B. Fine-grained parallelism in ellie // J. Object Oriented Program. — 1992. — Vol. 5, no. 3. Pp. 55−62.
- Anderson Т. E., Lazowska D. D., Levy H. M. The performance implications of thread management alternatives for shared-memory multiprocessors // SIGMETRICS '89:
- Proceedings of the 1989 ACM SIGMETRICS international conference on Measurement and modeling of computer systems. — New York, NY, USA: ACM Press, 1989. — Pp. 49−60.
- Blumofe R. D. Executing multithreaded programs efficiently: Ph.D. thesis / Massachusetts Institute of Technology. — Cambridge, MA, USA: Massachusetts Institute of Technology, 1995.
- Blumofe R. D., Leiserson С. E. Space-efficient scheduling of multithreaded computations // STOC '93: Proc. of the twenty-fifth annual ACM symposium on Theory of computing. — New York, NY, USA: ACM Press, 1993. Pp. 362−371.
- Blumofe R. D., Leiserson С. E. Scheduling multithreaded computations by work stealing // J. ACM. 1999. — Vol. 46, no. 5. — Pp. 720748.
- Bois A. R. D., Loidl H.-W., Trinder P. W. Thread migration in a parallel graph reducer // IFL / Ed. by R. Репа, T. Arts. — Vol. 2670 of Lecture Notes in Computer Science. — Springer, 2002. Pp. 199−214.
- Burton F. W., Sleep M. R. Executing functional programs on a virtual tree of processors // FPCA '81: Proc. of the 1981 conference on Functional programming languages and computer architecture. New York, NY, USA: ACM Press, 1981. — Pp. 187−194.
- Chandra R. The cool parallel programming language: design, implementation, and performance: Ph.D. thesis. — Stanford, CA, USA: Stanford University, 1995. — P. 151.
- Chandra R., Gupta A., Hennessy J. L. Data locality and load balancing in COOL // PPOPP '93: Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming. — New York, NY, USA: ACM Press, 1993. — Pp. 249−259.
- Cheng S. P., Dandamudi S. Performance analysis of hierarchical task queue organization for parallel systems // Proceedings of the 12th International Conference on Distributed Computing Systems. — 1992. Pp. 286−293.
- Cilk: An efficient multithreaded runtime system: Tech. rep. / R. D. Blumofe, C. F. Joerg, В. C. Kuszmaul et al. — Cambridge, MA, USA: Massachusetts Institute of Technology, 1996.
- Cilk Frequently Asked Questions Электронный ресурс. — Электрон, текст, дан. — Б. изд., 2007. — Режим доступа: http://supertech.csail.mit.edu/cilk/FAQ/index.html, свободный. — Электрон, текст, док.
- Denning P. J. The working set model for program behavior // Commun. ACM. — 1968.— Vol. 11, no. 5.- Pp. 323−333.
- Denning P. J., Schwartz S. C. Properties of the working-set model // Commun. ACM.— 1972. Vol. 15, no. 3. — Pp. 191−198.
- Eggert L., Touch J. D. Idletime scheduling with preemption intervals // SIGOPS Oper. Syst. Rev. 2005. — Vol. 39, no. 5. — Pp. 249−262.
- Feeley M. Lazy remote procedure call and its implementation in a parallel variant of с // PSLS '95: Proceedings of the International Workshop on Parallel Symbolic Languages and Systems. — London, UK: Springer-Verlag, 1996. — Pp. 3−21.
- GCC, the GNU Compiler Collection Электронный ресурс. — Электрон, текст, дан. — 2007. — Режим доступа: http://gcc.gnu.org/, свободный. — Электрон, текст, док.
- The Glasgow Haskell Compiler Электронный ресурс.— Электрон, текст, дан.— 2007.— Режим доступа: http://www.haskell.org/ghc/, свободный. — Электрон, текст, док.
- Goldman R., Gabriel R. P. Qlisp: Parallel processing in lisp // IEEE Softw. — 1989. Vol. 6, no. 4. — Pp. 51−59.
- GUM: a portable parallel implementation of Haskell / P. W. Trinder, K. Hammond, Л. J. S. Mattson et al. // Proc. of the ACM SIGPLAN 1996 conference on Programming language design and implementation. — N.Y.: ACM Press, 1996. — Pp. 79−88.
- Halstead R. H. Implementation of Multilisp: Lisp on Multiprocessor // Proc. of the 1984 ACM Symposium on LISP and functional programming, Austin, Texas, United States. — N.Y.: ACM Press, 1984. Pp. 9−17.
- Kale L. V. Comparing the performance of two dynamic load distribution methods //In Proc. of the International. Conf. on Parallel Processing. — 1988. — Pp. 8−12.
- Kranz D. A., R. H. Halstead J., Mohr E. Mul-t: a high-performance parallel lisp // PLDI '89: Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation. — New York, NY, USA: ACM Press, 1989.- Pp. 81−90.
- Loidl H.-W. Load balancing in a parallel graph reducer // Trends in functional programming. — Exeter, UK, UK: Intellect Books, 2002. — Pp. 63−74.
- Meyers S. Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library (Paperback). — Addison Wesley Professional, 2001. — 288 pp.
- Moreau L. Sound Evaluation of Parallel Functional Programs with First-Class Continuations: Ph.D. thesis / University of Liege. — 1994.
- MPI: A Message-Passing Interface Standard Электронный ресурс. — Электрон, текст, дан. — Knoxville, Tennessee: University of Tennessee, 1995. — Режим доступа: http://www.mpi-forum.org/docs/mpi-ll.ps, свободный.— Электрон, версия печ. публикации.
- MPI-Povray. Distributed Povray using MPI message passing Электронный ресурс. — Электрон. текст, дан. — 2007. — Режим доступа: http://www.verrall.demon.co.uk/mpipov/, свободный. — Электрон, текст, док.
- The NAS parallel benchmarks: Tech. Rep. RNR-94−007 / D. Bailey, E. Barszcz, J. Barton et al.: 1994.
- Oldehoeft R. R., Cann D. C. Applicative parallelism on a shared-memory multiprocessor // IEEE Softw. 1988. — Vol. 5, no. 1. — Pp. 62−70.
- OpenC++ Электронный ресурс.— Электрон, текст, дан.— 2003.— Режим доступа: http://www.csg.is.titech.ac.jp/~chiba/openc++.html, свободный. — Электрон, текст, док.
- OpenTS: An Outline of Dynamic Parallelization Approach / S. Abramov, A. Adamovich, A. Inyukhin et al. // Parallel Computing Technologies. 8th International Conference,
- Krasnoyarsk, Russia, September 5−9, 2005 / Ed. by Y. Malyshkin. — Springer-Verlag, 2005. — Vol. 3606 of Lecture Notes in Computer Science. — Pp. 303−312.
- OProfile Электронный ресурс.— Электрон, текст, дан, — Режим доступа: http://oprofile.sourceforge.net, свободный. — Электрон, текст, док.
- The Persistence of Vision Raytracer Электронный ресурс. — Электрон, текст, дан. — 2007. — Режим доступа: http://www.povray.org/, свободный. — Электрон, текст, док.
- Randall К. Н. Cilk: Efficient Multithreaded Computing: Ph.D. thesis / Massachusetts Institute of Technology. — Cambridge, MA, USA: Massachusetts Institute of Technology, 1998.
- Rees J., Clinger W. Revised report on the algorithmic language scheme // SIGPLAN Not. — 1986. Vol. 21, no. 12. — Pp. 37−79.
- Robert H. Halstead J. Multilisp: a language for concurrent symbolic computation // ACM Trans. Program. Lang. Syst. — 1985. — Vol. 7, no. 4. — Pp. 501−538.
- Simpson D. J., Burton F. W. Space efficient execution of deterministic parallel programs // IEEE Transactions on Software Engineering. — 1999. — Vol. 25, no. 6. — Pp. 870−882.
- Sinha A., Kale L. V. A load balancing strategy for prioritized execution of tasks // Proceedings of the Workshop on Dynamic Object Placement and Load Balancing, ECOOP'92. Utrecht, The Netherlands: 1992.
- The Sisal model of functional programming and its implementation / J.-L. Gaudiot, W. Bohm, W. Najjar et al. // Parallel Algorithms/Architecture Synthesis, 1997. Proceedings. Second Aizu International Symposium. — 1997. — Pp. 112−123.
- Squillante M. S., Lazowska E. D. Using processor-cache affinity information in shared-memory multiprocessor scheduling // IEEE Trans. Parallel Distrib. Syst. — 1993. — Vol. 4, no. 2. — Pp.131−143.
- Sunderam V. S. PVM: a framework for parallel distributed computing // Concurrency: Pract. Exper. 1990. — Vol. 2, no. 4. — Pp. 315−339.
- The CHARM Parallel Programming Language and System: Part II The Runtime system / L. Y. Kale, B. Ramkumar, A. B. Sinha, V. A. Saletore // Parallel Programming Laboratory Technical Report #95−03.— 1994.
- The Scalable Coherent Interface (SCI) Электронный ресурс. — Электрон, текст, дан. — Б. изд. — Режим доступа: http://www.dolphinics.com/corporate/scitech.html, свободный.— Электрон, текст, док.
- Vandevoorde М. Т., Roberts Е. S. Workcrews: an abstraction for controlling parallelism // Int. J. Parallel Program. 1988. — Vol. 17, no. 4. — Pp. 347−366.