Часовня новый язык параллельного программирования, разрабатываемый Cray Inc. как часть DARPA главе программы Высокая производительность вычислительных систем (HPCS). Часовня предназначен для повышения производительности пользователей высокопроизводительных компьютерных, а также подают в качестве портативного модели параллельного программирования, которые могут быть использованы на кластерах на товары или настольных многоядерных системах. Часовня стремится значительно улучшить программирования крупномасштабных параллельных компьютеров, подбирая или избиение производительность и портативность текущих моделей программирования, таких как MPI.
Часовня приложение поддерживает многопоточную модель выполнения через абстракций высокого уровня для параллелизма данных, параллелизм задач, параллелизм и вложенный параллелизм и NBSP;. Часовня Тип языковой позволяет пользователям указать и рассуждать о размещении данных и задач на целевой архитектуры в целях настроиться на местности. Часовня поддерживает агрегаты данных глобального вид с пользовательскими реализациями, что позволяет операции на распределенных структур данных, которые будут высказаны в естественным образом. В отличие от многих предыдущих параллельных языков высокого уровня, часовня строится вокруг философии кратномасштабного, позволяя пользователям изначально пишут очень абстрактный код, а затем постепенно добавить больше деталей, пока они не как близко к машине, как того требуют их потребности. Часовня поддерживает повторное использование кода и быстрого прототипирования с помощью объектно-ориентированного проектирования, типа вывода и функций для обобщенного программирования.
Часовня была разработана из первых принципов, а не путем расширения существующего языка. Это важно с блочной структурой языка, разработан, чтобы быть легко узнать для пользователей C, C ++, Fortran, Java, Perl, Matlab, и других популярных языках. В то время как Церковь опирается на понятия и синтаксис из многих предыдущих языках, его параллельные функции наиболее непосредственно влияют БФЛ, высокопроизводительный Фортран (HPF), и Cray MTA & торговля; / Cray XMT и торговли; Расширения С и Fortran
Что нового В этом выпуске:.
- Основные (см ниже) литий >
- раскол "Def" ключевое слово в "Proc" (для процедур) и «ИТЭР» (для итераторов)
- (см "$ CHPL_HOME / Util / преобразовать-DEFS --help 'для помощи обновления существующих кодов)
- добавил "Replicated" распределение и улучшение "Блок-Циклическая" Распределение
- (см & Quot; Стандартный распределения и Quot; в спецификации и примеры / праймеров / distributions.chpl)
- дополнительные слои задач одного региональные для Nanos ++ (BSC) и объектов QThread (Sandia)
- (см DOC / README.tasks)
- из основных переработка и реализация семантики дальности
- (см & Quot; семантические изменения / Изменения в Чапел языка и Quot; ниже для деталей)
- начальная поддержка летучих типов: BOOL, INT, UINT, реальный, емк
- (см DOC / TechNotes / README.volatile)
- поддержка Экстерн consts и классов (указатели-к-структуры)
- (см DOC / TechNotes / README.extern)
- улучшена поддержка параллелизма данных на Cray XMT
- широкие улучшения кодов выборок в примерах / каталог
- (см "пример" коды ниже и примеры / README)
- добавил большинство примеров кода из спецификации на новые примеры каталоге /
- (см примеры / SPEC / *)
- добавил техническую записку с описанием пользовательское сопоставление домена интерфейс
- (см DOC / TechNotes / README.dsi)
- широкие обновления спецификации языка
- (см '' Документация ниже)
- несколько улучшений поручением исполнения и связи слои
- (см & Quot; Runtime библиотеки Изменения и Quot; ниже)
- Синтаксическая / Нейминг изменений
- раскол "Def" ключевое слово в "Proc" (для процедур) и «ИТЭР» (для итераторов)
- (см "$ CHPL_HOME / Util / преобразовать-DEFS --help 'для помощи обновления существующих кодов)
- переименованы '' арифметические доменов / массивы "прямоугольные" домены / массивы
- добавлена поддержка для плавающей запятой литералов вида "1.e ...
- (ранее только "1е ...» и «... 1.0e" были поддержаны)
- семантические изменения / Изменения в Чапел языка
- несколько улучшений в диапазонах (см "Диапазоны" глава языка спецификации):
- добавил концепцию выравнивания, чтобы указать выравнивание по модулю | шаг |
- добавили 'Выровнять' оператора и запрос на диапазонах указать выравнивание / запроса
- (например, «1..10 на 3 Совместите 2 = & GT; '2, 5, 8' с 2 == == 5 8, мод 3)
- определяется == на полигонах в терминах целочисленных последовательностей, которые они производят
- определяется ОПОЗНАВАНИЕ (R1, R2), чтобы сказать ли R1 и R2 семантически идентичны
- определяется '# К' при к & LT; 0 в смысле & Quot; отсчет от конца диапазона и Quot;
- добавил "первый", "последний", "alignedLow« Методы alignedHigh 'в диапазонах
- (например, «1..10 по -2» = & GT-первых == 10, в прошлом == 2, alignedLow = 2, alignedHigh = 10)
- добавлена поддержка для различных новых функций Диапазон запросов
- (например, alignLow (), hasFirst (), hasLowBound (), isAligned (), boundsCheck () ...)
- добавлена поддержка для летучих BOOL, INT, UINT, реальная, и типов ИМАГ
- (см DOC / TechNotes / README.volatile)
- добавил конца-файла проверку на тип файла
- (например., "в то время! infile.eof ... ')
- убрана поддержка для лечения "возвращение" в итератор как «выход»
- (например, изменение "ИТЭР Foo () {возвращение х;} 'на' ИТЭР Foo () {выход х; возвращение;})
- добавлена поддержка для ссылающихся модулей без первого 'use'-ки их
- (например, модуль М1 {переменная х ...} модуль М2 {...} M1.x ... теперь юридическое)
- добавил callStackSize запрос типа локали
- (например, «here.callStackSize" возвращает размер стека вызовов от текущей локали)
- удалили ранее необходимую запятой с конца деклараций перечисления
- (например, «перечисления цвета {красный, синий, зеленый} 'теперь правовой; ранее необходимо'; ')
- добавлена поддержка для одного Запятая в конце списков перечислений
- (например, «перечисления цвета {красный, синий, зеленый,} 'теперь юридическое)
- удалены поддержку +/- операторов на прямоугольных областей; использовать переводить ()
- Недавно Реализованные функции
- реализованы == /! = для прямоугольных, ассоциативно и редкими доменов
- Стандартные Распределения
- добавил первый проект '' REPLICATED распределение для хранения данных с избыточностью
- (см примеры / праймеров / distributions.chpl)
- улучшенное "Блок-Циклическая", достаточно, чтобы правильно осуществить HPCC PTRANS и HPL
- (см примеры / HPCC / ptrans.chpl, hpl.chpl; примеры / грунтовки / distributions.chpl)
- удалить избыточность в описании лидер итераторов между доменами / массивов
- Стандартные модули
- добавил бесконечности и NaN константы модуля Math.chpl
- (см '' Math под & Quot; стандартные модули & Quot; на языке спецификации)
- добавил isinf () и () isfinite тестовые процедуры в модуле Math.chpl
- (см '' Math под & Quot; стандартные модули & Quot; на языке спецификации)
- добавил полтора десятка больше процедур для модуля GMP.chpl
- Документация
- добавлен новый техническую записку с описанием пользовательское сопоставление домена интерфейс
- (см DOC / TechNotes / README.dsi)
- сделано множество улучшений в спецификации языка
- основные изменения к главе Domains, чтобы улучшить ясность / точность
- улучшилось, и единая структура рекордов и классы главы
- основные изменения к главе Доменные Карты для улучшения четкости / точность
- имени пример коды для обеспечения кросс-ссылки на примеры / SPEC / программы
- уточнить законность этикетки / перерыва / продолжить в параллельных циклов
- обновляются описания читать [LN] / записи [LN]
- Исправлены некоторые проблемы в областях файлов заказа
- переформатирован спецификацию как «книги» в LaTeX
- различные мелкие исправления опечаток / ошибок
- улучшенные определения / описания нескольких терминах
- добавил документации locale.name
- и многие другие изменения ...
- обновляются краткий справочник документ должен включать пропи & GT; Proc / ИТЭР изменение, совместите оп .
- переписал / реорганизовано README.extern уточнить разъяснения и воспитывать современных
- добавил README, описывающий 'местный' о (Doc / TechNotes / README.local)
- добавил README, описывающий летучие виды (док / TechNotes / README.volatile)
- обновляются README.comm-диагностика говоря быстрые вилки статистику
- обновляются различные файлы README
- Пример коды
- помещается большинство примеров кода из языка спецификации. к новой спецификации / подкаталог
- улучшилось грунтовки / Каталог:
- добавлен новый учебник для использования процедуры (праймеры / procedures.chpl)
- добавил основную грунтовку для доменов (праймеры / domains.chpl)
- переименован локали грунтовке locales.chpl и улучшили его
- улучшилась грунтовку распределений и добавил Блок-Циклические и Реплицируемые использования
- обновляются диапазон праймер (праймеры / range.chpl)
- улучшилась грунтовку итераторы (праймеры / iterators.chpl)
- улучшилась грунтовку сокращений (праймеры / reductions.chpl)
- Добавлена GetCurrentTime () для грунтовки (праймеры таймеров / timers.chpl)
- добавил описания псевдонимов типа и типов конфигурационных переменных, чтобы грунтовки
- (см праймеров / variables.chpl)
- улучшилась каталог HPCC / тесты
- добавил первый вариант HPCC PTRANS в HPCC / каталога (ptrans.chpl)
- добавил чистого версию HPCC HPL для HPCC / каталога (hpl.chpl)
- добавил варианты / подкаталог с примерами / HPCC выставлять другие подходы
- добавил поток-promoted.chpl, чтобы показать использование продвижения в глобальной STREAM Triad
- добавил ра-cleanloop.chpl показать очиститель (но в настоящее время медленнее) ядро РА
- улучшенные образцы верхнего уровня:
- переименован существующих и Quot; привет, мир и Quot; примеры, чтобы предложить логический порядок чтения
- (см примеры / привет * .chpl)
- добавил данные параллельных и распределенных данных параллельного привет, примеры мировых
- (см примеры / hello3-datapar.chpl, примеры / hello4-datapar-dist.chpl)
- добавил комментарии к различным привет, примеры мира (примеры / привет * .chpl)
- обновляются все примеры к семантике текущего языка
- использовать "Proc '/' ИТЭР", а не "Def"
- обновление с учетом новых семантику дальности
- конкретной платформы Примечания
- для Cray XT / Cray XE, улучшили aprun и PBS-aprun пусковые
- (см & Quot; Launcher конкретных замечания и Quot; ниже)
- для Cray XMT, добавлена поддержка параллельных циклов по областям
- для Cray XMT, добавил поколения noalias директив для FORALL переменных цикла
- добавлена поддержка для MareNostrum КСК в том числе документы и специальной пусковой
- (см DOC / платформы / README.marenostrum)
- Launcher конкретных заметки
- добавил пуска-специфические опции, чтобы --help возможность
- улучшилась распространение кодов состояния выхода через пусковых
- изменились пусковые для поддержки Exec основе (а не на основе системы) команды
- из пусковых использовать "Разорвать связь", а не системы ('') гт, чтобы удалить временные файлы
- добавил запуска для MareNostrum КСК
- уменьшается количество временных файлов, используемых для захвата выход "системы" команды
- aprun улучшения пусковых
- добавил --cc флаг, чтобы указать назначение процессора ж / в узле
- добавил флаг -q для запуска ракеты-носителя в автоматическом режиме
- добавил отладки возможность сохранить временные файлы около через CHPL_LAUNCHER_DEBUG
- PBS-aprun улучшения пусковых
- добавил --cc флаг, чтобы указать назначение процессора ж / в узле
- добавил отладки возможность сохранить временные файлы около через CHPL_LAUNCHER_DEBUG
- очищены выход, чтобы избавиться от какой-то посторонней из печати
- из пусковой поддержка тестовой системе
- добавил --walltime и --queue флаги запуска и в качестве альтернативы окр. вары.
- Изменения компилятора
- из компилятора печать "истинный" / "ложный" в подписи типа, а не 1/0
- добавил конфигурации парам '' noRefCount отключить подсчет ссылок (может произойти утечка памяти)
- Флаги компилятора
- добавил флаг --print-CallStack-на-ошибки, чтобы показать, что привело к плохой вызова
- добавил флаг --no-Codegen пропустить генерации кода и связывающей фазы
- совместимость Изменения
- добавлена поддержка для экстерном С & Quot; классы и Quot; (указатель на структуры типа)
- добавлена поддержка для Экстерн consts (см README.extern)
- Улучшения Сообщение об ошибке
- добавил предупреждение сиротами "использование" заявления за пределами объявленных модулей
- (например, «использовать M1; модуль М2 {} ', как правило, должны быть" модуль М2 {использование М1;})
- сделано сообщение об ошибке разбора времени использовать стандартный 'имя файла: LINENO: "формат
- генерируется сообщение об ошибке для ссылки на имя класса в качестве основного метода
- (например, «класс С {Def Ст () {...}} 'теперь генерирует сообщение об ошибке)
- Исправления / Новые семантические проверки (для старых семантики)
- предотвратить типов конфигурационных от создаются с помощью флагов время выполнения командной строки
- Исправлена возможность компилятора для обработки союзы без каких-либо полей
- фиксированной сокращений MINLOC / MAXLOC обрабатывать пустые диапазоны / поддиапазоны значений
- Исправлена ошибка, в которой "путь" аргумент конструкторов файлов был проигнорирован
- из пустых союзы работают правильно
- Исправлена проблема переполнения в отрывов до диапазоны для распределения / распараллеливания
- Исправлена ошибка, связанная с поддержкой для пустых Экстерн типов записей
- Исправлена ошибка, связанная с Экстерн функции, которые возвращают записи
- Исправлена ошибка, связанная с копированием внешних записей
- фиксированной реализация +/- операторов в ассоциативных / редкие домены
- Исправлена ошибка, относящуюся к имени файла имен модулей на основе содержащих кратное-х годов.
- Сообщения об ошибках добавил для расширения / внешний / интерьер на нерегулярных областях
- добавил ошибку для конструкторов / деструкторов с указанным типом возвращаемого
- Исправлена пара ошибок, относящихся к "быстрым на« оптимизации
- добавил проверку в отношении построения классов без определения специфических полей
- Упаковочные Изменения
- добавил подсветки синтаксиса кода для GNU-источника подсветки
- (см т.д. / источника выделения / README)
- улучшенные Emacs раскраски поддержку версии 22.x
- (см т.д. / Emacs / README)
- Обновления в VIM окраски синтаксиса, чтобы отразить новую 'прок' / '' ИТЭР ключевые слова
- (см т.д. / VIM / README)
- добавил скрипт для конвертации "использования 'существующих кодексов DEF' до 'ИТЭР' / '' прок
- (см $ CHPL_HOME / Util / преобразовать-DEFS)
- удалены multirealm примеры и документация в настоящее время
- Программное обеспечение сторонних Изменения
- обновляются GASNet до версии 1.16.1
- добавил копии Nanos КСК ++ и объектов QThread Сандиа
- (см сторонних / README)
- сделал после установки шаг за GASNet, что изменения абсолютные пути к относительному
- удалены PVM на данный момент из-за нестабильности
- Runtime библиотеки Изменения
- дополнительные слои задач одного региональные для Nanos ++ (BSC) и объектов QThread (Sandia)
- несколько улучшений к выполнения постановки задач слоя:
- добавлен новый интерфейс за то, что многозадачность слой вызова chpl_main ()
- изменились задачами функцию инициализации, чтобы принять maxThreadsPerLocale / callStackSize аргументы
- добавил возможность текучести задача интерфейса задачами слоя
- Улучшен код выполнения, чтобы избежать использования синхронизации вары перед инициализацией задачами
- удалены макро-циализированных форма задачами интерфейс; с использованием стандартных имен, а не
- унифицированы имен всех процедур задача слоя, чтобы chpl_sync _ * () и chpl_task _ * ()
- удалить требование для реализации одной переменной интерфейс
- переехал прекращение потоков из FIFO постановки задач слоя Pthreads многопоточных
- упрощаются реализация переменных синхронизации в потоковой резьбы слоя
- переехал на себя ответственность за пунктам нитей от FIFO задачами для потоковой поточной
- несколько улучшений в уровне связи выполнения:
- реструктуризацию интерфейс связи для поддержки аргументы длина / тип
- добавил интерфейс для неблокиру- получить работу в комм. Интерфейс
- унифицированы все дистанционного получить операции использовать CHPL_COMM_GET () макрос
- рефакторингу / переименовал заголовки интерфейс связи
- система тестирования
- значительно улучшили тестирования и графические возможности
- (см комментарии на передней start_test для документации)
- улучшена поддержка тестирования системы для очистки после себя
- Добавлена возможность избегать использования любых косвенного стандартного ввода
- добавлена возможность обеспечить возможность prediff общесистемного
- Добавлена возможность использовать функцию тайм-аута родной пусковой, а не Пайтона
- улучшилась, как система тестирования убивает тест, который раз из
- Исправлена ошибка, в которой .preexec только файлы, если работал ". был на вашем пути
- Внутренняя
- добавил флаг --break-на-ID компилятора для разработчиков, чтобы найти создает АСТ узел
- совершенствование организации содержания Util / каталогов
- изменили способ номера версий вычисляются / отображаются для пользователей SVN на основе
- добавлена поддержка для Задачи- / Автор-зависимый код модуля
- добавил возможность печатать АСТ рассчитывает распределяются между каждым проходом
- добавлен новый GDB псевдоним компилятора --gdb: «LOC» печатает АСТ узла местоположения
- значительно улучшилась реализация ПРАГМАС / флагов, чтобы избежать случаев об ошибках
- удалить несколько случаев ненужных сравнений строк в компиляторе
- удалены подвержены ошибкам использование CHPL_TASKS и CHPL_THREADS, как символов препроцессора
- добавил BestPractices документации для разработчиков (не входит в выпуске)
- изменили внутреннюю munging из '=' и '==' до 'ASSIGN "и" равных »соответственно
- добавил флаг --print-ID-на-ошибки разработчиков для печати AST ID об ошибках
- улучшилась строгость C ++ прототипа проверки
- добавил внешние соглашения вклад в дереве SVN (не в релизе)
- добавил понятие внутренних типов, используемых компилятором, но не пользователь
Комментарии не найдены