Язык ZPL: Параллельное программирование для научных и инженерных задач.
ZPL (programming language)
ZPL: язык программирования для научных вычислений, замена C/C++. Высокая производительность, автоматический параллелизм, простота разработки. Оригинальное название - Orca C.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
ZPL (сокращение от Z level Programming Language) — это язык программирования, основанный на работе с массивами, разработанный для замены языков программирования C и C++ в инженерных и научных приложениях. Поскольку целью разработки была достижение высокой производительности на различных платформах, программы ZPL быстро выполняются как на последовательных, так и на параллельных компьютерах. Высокопараллельные программы на ZPL просты и удобны в написании, поскольку в них используется исключительно неявный параллелизм. Изначально называвшийся Orca C, ZPL был разработан и реализован в 1993–1995 годах проектом Orca факультета компьютерных наук и инженерии Вашингтонского университета.
ZPL (short for Z level Programming Language) is an array programming language designed to replace C and C++ programming languages in engineering and scientific applications. Because its design goal was to obtain cross platform high performance, ZPL programs run fast on both sequential and parallel computers. Highly parallel ZPL programs are simple and easy to write because it exclusively uses implicit parallelism. Originally called Orca C, ZPL was designed and implemented during 1993–1995 by the Orca Project of the Computer Science and Engineering Department at the University of Washington.
Подробности
ZPL использует абстракцию массивов для реализации модели параллельного программирования данных. Именно поэтому ZPL достигает такой высокой производительности: не используя параллельные директивы или другие формы явного параллелизма, ZPL использует свойство, заключающееся в том, что при описании агрегированных вычислений в терминах массивов необходимо (неявно) выполнить множество скалярных операций для реализации операций с массивами. Эти подразумеваемые вычисления могут быть автоматически распределены между различными процессорами для достижения параллелизма: параллелизм возникает из семантики операций с массивами. ZPL преобразуется в стандартное абстрактное синтаксическое дерево, на котором выполняются анализ и оптимизация программы. ANSI C код генерируется в качестве объектного кода. Эта программа на языке C (не зависящая от конкретной машины, поскольку реализует определенные операции в абстрактной форме) затем компилируется с использованием нативного C-компилятора на целевой машине с использованием специализированных библиотек, оптимизированных для конкретной платформы. Создателями ZPL были: Брэд Чемберлен, Сун Юн Чои, Э. Кристофер Льюис, Кальвин Лин, Джейсон Секоски, Ларри Снайдер и В. Деррик Уэзерсби, при поддержке Рут Андерсон, А. Дж. Бернхайма, Мариоса Дикайакоса, Джорджа Формана и Курта Партриджа. Активный статус проекта ZPL вызывает вопросы; последняя запись в разделе "Что нового" на главной странице официального веб-сайта датирована 9 января 2005 года.
ZPL uses the array abstraction to implement a data parallel programming model. This is the reason why ZPL achieves such good performance: having no parallel directives or other forms of explicit parallelism, ZPL exploits the operational trait that when aggregate computations are described in terms of arrays, many scalar operations must be (implicitly) performed to implement the array operations. This implied computation can be automatically allotted to different processors to achieve concurrency: Parallelism arises from the semantics of the array operations. ZPL is translated into a conventional abstract syntax tree representation on which program analysis and program optimizations are performed. ANSI C code is generated as the object code. This C program (which is machine independent because it implements certain operations in abstract form) is then compiled using the native C compiler on the target machine with custom libraries optimized to the specific platform. The creators of ZPL were: Brad Chamberlain, Sung Eun Choi, E Christopher Lewis, Calvin Lin, Jason Secosky, Larry Snyder, and W. Derrick Weathersby with assistance from Ruth Anderson, A. J. Bernheim, Marios Dikaiakos, George Forman, and Kurt Partridge. ZPL's status as an active project is in question; the latest "What's new" item on the front page of the official website is dated 9 January 2005.