ДАП ФОРТРАН
DAP FORTRAN был расширением частей FORTRAN, не связанных с вводом-выводом , с конструкциями, которые поддерживали параллельные вычисления для Процессор распределенных массивов ICL (DAP). DAP имел архитектуру Single Instruction Multiple Data (SIMD) с однобитными процессорами 64x64.
DAP FORTRAN имел следующие основные особенности:
- Он имел матричные и векторные операции.
- Присвоения могли выполняться под логической маской, поэтому изменялись только некоторые элементы в цели назначения.
- С другой стороны, операции выполнялись с использованием размера базового оборудования, т.е. с матрицей 64x64 или вектором из 64 элементов.
В объявлении можно опустить один или два экстента, например:
C Multiply vector by matrix
REAL M(,), V(), R()
R = SUM(M*MATR(A))
C Converge to a Laplace potential in an area
REAL P(,), OLD_P(,)
LOGICAL INSIDE(,)
DO 1 K = 1, ITERATIONS
OLD_P = P
P(INSIDE) = 0.25*(P(,+)+P(,-)+P(+,)+P(-,))
IF (MAX(ABS(P-OLD_P)) .LT. EPS) RETURN
1 CONTINUE
Пропущенный размер был принят равным 64, размеру одной стороны DAP. Скорость арифметических операций сильно зависела от количества бит в значении. INTEGER*n зарезервировал 8n бит, где n имеет значение от 1 до 8, а REAL*n зарезервировал 8n бит, где n имеет значение от 3 до 8. LOGICAL зарезервировал один бит.
Однако DAP FORTRAN находился между двумя противоречивыми целями. Необходимо было эффективно использовать возможности DAP. Но он также должен был быть доступен научному сообществу, чьим основным языком, тесно связанным с последовательной архитектурой, был ФОРТРАН. Используемым диалектом был FORTRAN серии 2900 ICL, который был основан на ранней версии стандарта FORTRAN 77 и имел несоответствия как с FORTRAN 77, так и со старым стандартом FORTRAN 66 .
DAP FORTRAN значительно отличался от стандартного FORTRAN, и машина не была способна принимать или оптимизировать стандартные программы FORTRAN. С другой стороны, по сравнению с другими современными языками, которые были по замыслу расширяемыми (особенно с АЛГОЛ-68 ), ФОРТРАН не очень хорошо подходил для этой задачи. Результат был заметно неэлегантным и потребовал много новых знаний. С эксплуатационной точки зрения были накладные расходы на передачу вычислительных данных в массив и из него, а проблемы, которые не укладывались в матрицу 64x64, создавали дополнительную сложность для обработки границ (65x65, пожалуй, худший случай!) – но для задач, которые подходили архитектуре , он может превзойти нынешнюю архитектуру конвейера Cray на два порядка.
В более поздней версии DAP вместо этого использовался Fortran-Plus , основанный на FORTRAN 77 и имел более гибкую индексацию. В частности, он автоматически сопоставлял массивы пользовательского размера с базовым оборудованием.
Внешние ссылки
[ редактировать ]- ICL DAP Фортран
- Деннис Паркинсон; Джон Литт (1990). Массовые параллельные вычисления с помощью DAP . Научные монографии по параллельным и распределенным вычислениям. Питман. ISBN 978-0-273-08809-7 .