WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 |   ...   | 4 | 5 ||

Программная реализация математического обеспечения в первую очередь должна соответствовать требованиям, приведенным на рис. 2 (раздел 1). При этом возможность удовлетворения заявленным требованиям во многом связана как с технологиями, в выборе которых программист имеет достаточно свободы выбора (язык программирования, среда разработки, компилятор, использование объектноориентированного подхода), так и с жесткими техническими требованиями (объем памяти, тип коммуникаций и т.п.). При этом проблемно ориентированный программист должен стремиться к максимальной унификации своих программ как с точки зрения использования повторного кода, так и с точки зрения возможности переносимости программ на другие архитектуры, используя при этом все доступные средства. В первую очередь речь идет о выборе языка программирования. Подавляющее большинство современных суперкомпьютеров оснащены мощными компиляторами C/С++ и Fortran90, а соответственно, и большая часть современного программного обеспечения для высокопроизводительных вычислений выполняется именно на этих языках. При этом обеспечение надежности, эффективности и безотказной работы параллельных осуществляется на фоне огромного количества операций с памятью (иногда на пределе оперативной памяти узла), что требует от программиста особой внимательности при написании параллельного кода, который более чем какой-либо критичен к “утечкам памяти”. Для параллельной обработки данных, оперирующей, как правило, очень большими объемами данных, вышеописанные проблемы особенно актуальны.

Непосредственный вызов коммуникационных функций в параллельном приложении так же не приветствуется, так как ухудшает читаемость программы и является источником большого количества ошибок. Основным путём решения подобных проблем является использование объектно-ориентированного подхода, позволяющего работу по выделению и удалению памяти доверить исключительно конструкторам и деструкторам классов, а вызовы коммуникационных функций “обернуть” встроенными методами класса, хранящего основные данные (например, матрица, вектор, массив структур и т.п.).

Немаловажным является возможность быстрой оценки производительности написанного приложения; соответствующее программное обеспечение трассировки (профилировки) и отладки параллельных программ достаточно хорошо развито.

Разработка параллельных приложений имеет ряд серьезных особенностей, не имеющих аналогов в других областях программирования, и дать их исчерпывающее описание в данном учебном курсе практически невозможно. Тем не менее, осознать и прочувствовать основные принципы построения эффективных параллельных приложений обработки данных можно на нескольких реальных примерах, которые будут рассмотрены во время практических занятий Зимней школы-практикума «Технологии параллельного программирования 2006».

Современные подходы к образованию в области параллельных вычислений переживают существенную перестройку. В те времена, когда параллельное программирование ассоциировалось с доступом к мощным суперкомпьютерам, владение способами конструирования эффективных вычислительных алгоритмов и их отображения на многопроцессорную архитектуру оставалось уделом избранных; рядовому пользователю предлагались типовые алгоритмические решения и (или) программное обеспечение. Однако интенсивное развитие кластерных систем на основе стандартных комплектующих, а главное – проникновение на бытовой рынок систем на основе многоядерных процессоров перевело проблему параллельного программирования в разряд повседневных. Иными словами, вопрос создания параллельного программного обеспечения становится лишь одним из аспектов более общей дисциплины – инженерии прикладного параллельного математического обеспечения, как совокупности математических моделей, численных методов их реализации, параллельных алгоритмов и программных кодов, рекомендаций по применению, иллюстрационных и обучающих примеров.

Именно потому данные учебные материалы ориентированны на читателя, интересующегося некоторой прикладной областью, связанной с обработкой больших объемов информации, критичной к производительности вычислений. Целью авторов являлось формирование общего представления о проектировании параллельного математического обеспечения, как сложном и творческом процессе в противовес алгоритмически тривиальному формальному распараллеливанию последовательных программных кодов. Мы надеемся, что этот курс поможет читателю адекватно воспринимать сильные и слабые места параллельных вычислительных технологий, принимая в расчет специфику архитектур вычислительных систем, программируемых методов и особенности обрабатываемых данных! 1. Барский А.Б. (1990) Параллельные процессы в вычислительных системах.

Планирование и организация. М. Радио и связь, 1990.

2. Богданов А.В., Корхов В.В., Мареев В.В., Станкова Е.Н. (2004) Архитектуры и топологии многопроцессорных вычислительных систем. М., Интернет-университет информационных технологий, 2004.

3. Воеводин В.В., Воеводин Вл. В. (2002) Параллельные вычисления. СПб, БХВПетербург, 2002.

4. Голуб Дж., Лоун Ван Ч. (1999) Матричные вычисления. М., Мир, 1999.

5. Корнеев В.В. (2004) Вычислительные системы. М., «Гелиос АРВ», 2004.

6. Немнюгин С.А., Стесик О.В. Параллельное программирование для многопроцессорных вычислительных систем. СПб, БХВ-Петербург, 2002.

7. Ортега Дж. (1991) Введение в параллельные и векторные методы решения линейных систем. М. Мир, 1991.

8. Соммервилл И. (2002) Инженерия программного обеспечения. 6-изд., Изд.

«Вильямс», СПб, 2002.

9. Хьюз К., Хьюз Т. (2004) Параллельное и распределённое программирование с использованием С++. Москва, Санкт-Петербург, Киев, 2004.

10. Blelloch G. (1990) Vector Models for Data-Parallel Computing. MIT Press, 1990.

11. Foster J. (1995). Designing and Building Parallel Programs. Adison-Wesley, 1995 (Online version on http://www-unix.mcs.anl.gov/dbpp).

12. Freitas A.A., Lavington S.H. (1998) Mining Very Large Databases With Parallel Processing. Kluwer International Series on Advances in Database Systems, 8, 1998.

13. Pandle S., Agrawal D.P. (Eds.) (2001) Compiler Optimization for Scalable PC, LNCS 1808, Springer-Verlag, 2001.

1. Айвазян С.А., Мхитарян В.С. (1999) Прикладная статистика и основы эконометрики.

М., изд. ЮНИТИ, 1999.

2. Андерсон Т.В. (1963) Введение в многомерный статистический анализ. М., Физматгиз, 1963.

3. Бартлетт М.С. (1958) Введение в теорию случайных процессов. М., Изд-во ИЛ., 1958.

4. Бухановский А.В., Дегтярев А.Б., Иванов С.В., Кирюхин И.А., Нечаев Ю.И., Саськов К.Г. (2003) Распределенный интеллектуальный кардиологический комплекс нового поколения на базе суперкомпьютеров семейства «СКИФ». Сборник докладов конференции «Управление и информационные технологии» УИТ-2003, СПб, 2003, т.

2, с. 246-251.

5. Ермаков С.М., Михайлов Г.А. (1982) Статистическое моделирование. М., Наука, 1982.

6. Марпл-мл. (1990) С.Л. Цифровой спектральный анализ и его приложения. М., Мир, 1990.

7. Мирзоев Д.А., Зильберштейн О.И., Лопатухин Л.И., Миронов Е.У., Михайлов Н.Н.

(1999) Концепция обеспечения специализированной гидрометеорологической информацией проектирования сооружений на шельфе арктических морей. Труды Четвертой Международной конференции “Освоение шельфа арктических морей”.

RAO 99. Санкт-Петербург. 1999.

8. Рао С.Р. (1968) Линейные статистические методы и их применения. М., Мир, 1968, 548 с.

9. Рожков В.А., Трапезников Ю.А. (1990) Вероятностные модели океанологических процессов. Л., Гидрометеоиздат, 1990.

10. Соболь И.М. (1973) Численные методы Монте-Карло. М., Наука, 1973.

11. Справочные данные по режиму ветра и волнения Баренцева, Охотского и Каспийского морей (2003). Российский морской регистр судоходства, СПб, 2003, 214 с.

12. Шалыгин А.С., Палагин Ю.И. (1986) Прикладные методы статистического моделирования. Л., Машиностроение, 1986.

13. Boukhanovsky A., H. Krogstad, L. Lopatoukhin, Rozhkov V. (2003) Stochastic simulation of inhomogeneous metocean fields. Part I: Annual variability. Proceedings of ICCS’03, LNCS 2658, Springer-Verlag, 2003, pp. 213-222.

14. Chen Z., Dongarra J., Luszchek P., Roche P. (2003) Self-adapting software for numerical linear algebra library routines on clusters. Proceedings of ICCS’03, LNCS, 2659, SpringerVerlag, 2003, pp. 665-672.

15. Cooley W.W., Lohnes P.R. (1971) Multivariate data analysis. John Willey & Sons, NY, 1971.

16. Hendrickson B., Devine K. (2000) Dynamic Load Balancing in Computational Mechanics.

Comp. Meth. Applied Mechanics & Engineering. 184(2-4), 2000, pp.485-500.

17. Sloot P.M.A., Boukhanovsky A.V., Wilko K., Tirado-Ramos A., Boucher Ch. (2005) A Grid-Based HIV Expert System. Journal of Clinical Monitoring and Computing, Vol. 19, №4-October 2005, pp. 263 – 278.

Pages:     | 1 |   ...   | 4 | 5 ||






















© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.