Программирование на типовых алгоритмических структурах с массивным параллелизмом
Ключевые слова:
параллельное программирование
типовые алгоритмические структуры
оптимизация программ
массивный параллелизм
Аннотация
Рассматривается новая технология программирования, основанная на ограниченных формах параллелизма — типовых алгоритмических структурах с массивным параллелизмом. Приведена классификация типовых алгоритмических структур. На основе анализа задач вычислительной газодинамики и квантовой химии предложены новые проблемно-ориентированные структуры. Рассмотрены различные механизмы композиции таких структур, применяемые в процессе разработки параллельных программ, а также вопросы их оптимизации. Описаны особенности программной реализации этих структур, включая механизмы обеспечения мобильности и эффективности, а также объектно-ориентированные методы повторного использования и специализации типовых алгоритмических структур. Представлена архитектура системы программирования.
Раздел
Раздел 2. Программирование
Библиографические ссылки
- Берзигияров П.К. Формальное конструирование программ на базе алгоритмических структур с массовым параллелизмом: статическая конвейеризация алгоритмов «разделяй-и-властвуй» // Тез. докл. VI-й конференции «Транспьютерные системы и их применение». Вестник Российской транспьютерной ассоциации. Домодедово, 1996. 46.
- Берзигияров П.К., Султанов В.Г. Параллельное моделирование рэлей-тейлоровских гидродинамических неустойчивостей // Вестн. Моск. ун-та. Вычисл. матем. Киберн. 2001. № 1. 1-10.
- Грибов Л.А., Муштакова С.П. Квантовая химия. М.: Гардарики, 1999.
- Aldinucci M., Coppola M., Danalutto M. Rewriting skeleton programs: how to evaluate the data-parallel stream-parallel tradeoff // Proc. of International Workshop on Constructive Methods for Parallel Programming. Technical Report MIP-9805. University of Passau. Passau, 1998.
- Bacci B., Danelutto M., Pelagatti S., Vanneschi M. SkIE: an heterogeneous environment for HPC applications // Parallel Computing. 1999. 25, N 13-14. 1827-1852.
- Balay S., Gropp W.D., McInnes L.C., Smith B.F. Efficient management of parallelism in object-oriented numerical software libraries // Modern Software Tools in Scientific Computing / Arge E., Bruaset A.M., Langtangen H.P. (Eds.). Birkhauser Press: 1997. 163-202.
- Berzigyarov P.K. Static Pipelines for Divide-and-Conquer Functions: Transformations and Analysis. Preprint IVTAN, N 8-391. Moscow, 1995.
- Bird R.S. An introduction to the theory of lists // Logic of Programming and Calculi of Discrete Design / Broy M. (Ed.). NATO ASI Series. 1987.
- Boglaev Yu.P. On the parallel and perpendicular computations // Parallel Algorithms and Applications. 1994. 3. 89-107.
- Botorog G.H., Kuchen H. Skil: an imperative language with algorithmic skeletons for efficient distributed programming // Proc. of the Fifth International Symposium on High Performance Distributed Computing (HPDC-5). IEEE Computer Society. 1996. 243-252.
- Botorog G.H., Kuchen H. Algorithmic skeletons for adaptive multigrid methods // LNCS. 1995. 980. 27-41.
- Bratvold T.A. Skeleton-based parallelization of functional programs: PhD thesis. Dept. of Computing and Electrical Engineering. Heriot-Watt University. Edinburgh, 1994.
- Campbell D.K. G. Towards the Classification of Algorithmic Skeletons. Technical Report YCS 276. Department of Computer Science, University of York. York, 1996.
- Cole M.I. Algorithmic Skeletons: Structured Management of Parallel Computation. Massachusetts, Cambridge. Boston: MIT Press, 1989.
- Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. Reading-Amsterdam-Tokyo: Addison-Wesley, 1995.
- Gorlatch S., Bischof H. A generic MPI implementation for a data-parallel skeleton: formal derivation and application to FFT // Information Processing Letters. 1998. 8, N 4. 447-458.
- Gropp W., Huss-Ledermann S., Lumsdaine A., Lusk E., Nitzberg B., Saphir W., Snir M. MPI: The Complete Reference. Vol. 2. The MPI Extensions. Boston: MIT Press, 1998.
- Darlington J., Field A.J., Harrison P.G., Kelly P.H. J., Sharp D.W. N., Wu Q., While R.L. Parallel programming using skeleton functions // In: Parallel Architectures and Languages. Berlin: Springer-Verlag, 1993. 146-160.
- Darlington J., Guo Y., To H.W., Yang J. SPF: Structured parallel Fortran // Proc. of the Sixth Parallel Computing Workshop. Japan. Kawasaki, 1996. 1-6.
- Decyk V. K. Skeleton PIC Codes for Parallel Computers. Physics Department. UCLA. Los Angeles, 1994.
- MacDonald S., Szafron D., Schaeffer J., Bromling S. Generating parallel program frameworks from parallel design patterns // Proc. of EuroPar’2000. Berlin: Springer-Verlag, 2000. 95-104.
- MacDonald S., Szafron D., Schaeffer J., Bromling S. From patterns to frameworks to parallel programs // IEEE Concurrency. 1999. 7, N 1-4. 1-21.
- MacDonald S., Szafron D., Schaeffer J. Object-oriented pattern-based parallel programming with automatically generated frameworks // Proc. of the Fifth USENIX Conference on Object-Oriented Tools and Systems. San Diego, 1999. 29-43.
- MacDonald S. Parallel Object-Oriented Pattern Catalogue. Draft. 1998.
- MacDonald S. Design patterns in enterprise // Proc. of CASCON’96. Toronto, 1996. 1-10.
- Massingill B.L., Chandy K.M. Parallel Program Archetypes. Technical Report CS-TR-96-28. California Institute of Technology. Pasadena, 1996.
- McInnes L.C., Smith B.F. PETSc 2.0: A case study of using MPI to develop numerical software libraries // Proc of the 1995 MPI Developers Conference. University of Notre Dame. Notre Dame, 1995. 1-16.
- Mou Z.G., Hudak P. An algebraic model for divide-and-conquer and its parallelism // Journal of Supercomputing. 1988. N 2. 257-278.
- Osoba F.O., Rabhi F.A. A parallel multigrid skeleton using BSP // Proc. of EuroPar’98. LNCS. Berlin: Springer-Verlag. 1998. 1-6.
- Pelagatti S. Structured Development of Parallel Programs. London-Bristol: Taylor&Francis, 1997.
- Pelagatti S. A methodology for the development and the support of massively parallel programs: PhD thesis. Dipartimento di Informatica Universita’ di Pisa. Pisa, 1993.
- Reynders J.V. W. et al. POOMA: A framework for scientific simulations on parallel Architectures // In: Parallel Programming using C++. Cambridge: MIT Press, 1996. 1-43.
- Serot J., Ginhac D., Derutin J-P. Skipper: A skeleton-based parallel programming environment for real-time image processing applications // LNCS. 1999. 1662, 296-305.
- Siu S. Openness and Extensibility in Design-Pattern-Based Parallel Programming Systems. Master of Applied Science Thesis. University of Waterloo. Ontario. Canada. Waterloo, 1996.
- Siu S., De Simone M., Goswami D., Singh A. Design patterns for parallel programming // Parallel and Distributed Processing Techniques and Applications. California. Pasadena, 1996. 230-240.
- Skillicorn D.B., Hill J., McColl B. Questions and answers about BSP // Scientific Programming. 1997. 6, N 3. 249-274.
- Skillicorn D.B. Models for practical parallel computation // International Journal of Parallel Programming. 1991. 20, N 2. 133-158.
- Skillicorn D.B. The Bird-Meertens formalism as a parallel programming model // NATO ASI Workshop on Software for Parallel Computation. Italy. Cetraro. June 1992. Berlin: Springer-Verlag, 1993. 1-14.
- Skillicorn D.B., Danelutto M., Pelagatti S., Zavanella A. Optimizing data-parallel programs using the BSP cost model // LNCS. 1998. 1470. 698-706.
- Snir M., Otto S., Huss-Lederman S., Walker D., Dongarra J. MPI: The Complete Reference. Vol. 1. The MPI Core. Boston: MIT Press, 1998.
- Singh A., Schaeffer J., Szafron D. Views on template-based parallel programming // Proc. of CASCON’96. Toronto, 1996. 1-12.
- To H.W. Optimizing the Parallel Behavior of Combinations of Program Components: PhD thesis. University of London Imperial College of Science, Technology and Medicine, Department of Computing. London, 1995.
- Yabe T., Ishikawa T., Wang P.Y. A universal solver for hyperbolic equations by cubic-polynomial interpolation II. Two- and three-dimensional solvers // Computer Physics Communications. 1991. N 66. 233-242.
- Zavanella A. Optimizing skeletal stream parallelism on a BSP computer // LNCS. 1999. 1685. 853-857.
- Zavanella A., Pelagatti S. Using BSP to optimize data-distribution in skeleton programs // LNCS. 1999. 1593. 613-622.
- Valiant L.G. A bridging model for parallel computation // Communications of the ACM. 1990. 33, N 8. 103-111.