Мелкозернистые вычисления
Новым направлением в теории клеточных автоматов является поиск альтернативных моделей динамических нелинейных систем. Совокупность таких моделей, алгоритмов и основыннх на них компьютерных технологий формируют концепцию мелкозернистого параллелизма. Возрастающий интерес к такому параллелизму объясняется двумя моментами: во первых, реализованные аппаратно, мелкозернистые вычисления могут быть на несколько порядков быстрее обычных; во вторых, их легко программировать и они достаточно надежны. Подробнее...
Программирование на мультикомпьютерах
Проект предназначен для сбора и последующего использования информации о различных аспектах программирования на мультикомпьютерах с целью достижения высокой производительности параллельных программ. Целевой аудиторией проекта являются прикладные программисты занимающиеся численным моделированием. Подробнее...
Проект NumGRID
Метакомпьютинг - это использование компьютерных сетей для создания распределенной вычислительной инфраструктуры национального и мирового масштаба. Цель проекта - стереть барьеры между разнородными, пространственно распределенными вычислительными системами и образовать сверхкомпьютер или метакомпьютер, который выступал бы для пользователей в виде единой вычислительной среды, доступной с любого рабочего места. Подробнее...
Проект SAGE
SAGE (scientific applicaitonal graphical environment) - система синтеза программ визуализации задач численного моделирования. Система SAGE предназначена для автоматизации процесса разработки научных графических приложений. Цель проекта - создание программного инструмента, позволяющего пользователю разрабатывать программы визуализации без явного написания кода программы и не требующие от него знания программирования графики и интерфейсов. Система призвана минимизировать интеллектуальные и временные затраты, возникающие при синтезе графических приложений(download). Подробнее...
Разработка численных моделей большого размера
Проект посвящен междисциплинарной экспертизе гипотезы о допланетном синтезе первичного органического вещества на Земле, в результате которой будут установлены наиболее вероятные условия синтеза органических соединений в солнечной системе, экспериментально исследованы возможности возникновения естественного отбора среди предбиологических молекул - автокатализаторов и изучены пути их последующей биохимической эволюции с возникновением молекулярных носителей биологической информации. Подробнее...
Система фрагментированного программирования
Фрагментированная программа состоит из множества фрагментов вычислений (ФВ), на котором определен частичный порядок срабатывания ФВ, обусловленный информационными зависимостями между вычислениями во ФВ и требованиями к использованию ресурсов вычислительной системы. Например, вычисление выражения r = a*b+f*b может быть представлено такой фрагментированной программой:
ФВ распределены по процессорным элементам и действуют над общим распределенным полем данных, которое представлено набором простых и фрагментированных структурных переменных. Важную роль здесь играет качественная поддержка распределенных структур данных исполнительной системой. Структура данных должна разбиваться на фрагменты фиксированного размера, где размер будет параметром разбиения, и таких фрагментов на каждом процессорном элементе может присутствовать множество. Каждая реализация распределенной структуры данных определяет свой способ обработки этой структуры с помощью фрагментов. Массовые алгоритмы реализуются с использованием понятия итерации и фрагментированных массивов. Например, вычисление элементов массива a из элементов массива b по правилу a[i] = f(b[i]) во фрагментированной реализации будет выглядеть следующим образом:
Фрагмент вычислений k, всего фрагментов N:
{ Взять фрагмент ak массива a:
Для i от начала до конца ak
Вычислить ak[i]. }
Исполнительная система обеспечивает выполнение фрагментов в соответствии с заданным программистом частичным порядком.
Динамическая балансировка во фрагментированной системе программирования осуществляется автоматически: в случае, если никакой из ФВ на данном процессорном элементе не готов выполняться (в смысле частичного порядка), готовые выполняться ФВ из других процессорных элементов перемещаются на данный и запускаются на нем. Надежность вычислений обеспечивается посредством возобновления ФВ, бывших на пострадавшем процессорном элементе, на оставшихся процессорных элементах.
Фрагментированное программирование особенно хорошо подходит для больших многокомпонентных задач, для описания вычислений в сложных областях. Фрагментированная программа в силу своей фрагментированной природы обладает большей способностью к динамической настройке на вычислительную систему и состояние вычислений, а также большими возможностями для асинхронного удовлетворения информационных зависимостей между фрагментами. Достигается это благодаря наличию большого количества ФВ на каждом процессорном элементе. Многие из них могут выполняться независимо. В то время, когда некоторый фрагмент производит вычисления на процессоре, другой фрагмент, или исполнительная система от его имени, могут выполнять обмены данными с другими ПЭ по сети.
Для системы фрагментированного программирования накапливается библиотека фрагментированных реализаций наиболее востребованных численных методов.
|