Вимоги, які ви поставили, фактично поставили Fortran на перше місце у списку для таких проблем:
а)
паралельне число б) паралельне
в) воно було і досі є фактичною мовою, яку викладають поза дослідженнями cs (інженерам, які не є професійними програмістами).
г) має неймовірну (!) галузеву підтримку, компілятор, що відповідає кількості галузей, і жоден з виробників не має найменших ознак відмови від цієї галузі. Нещодавно один з представників Intel виявив, що продажі їхніх продуктів Fortran в інструментах розробки вищі, ніж будь-які інші.
Це також мова, яку неймовірно легко підібрати. Я не згоден, що потрібен час для швидкого залучення асистентів. У моєму першому підручнику було більше, ніж, о, я не знаю, 30 (?) Сторінок розрідженого друкованого тексту. Це мова, якою після вивчення 10 ключових слів можна писати програми середнього розміру. Я б наважився сказати, що ці 30 сторінок, написані текстом Word за замовчуванням, становлять більш, ніж вичерпний "посібник з Fortran" для більшості користувачів.
Якщо вас цікавить CUDA, ви можете перевірити компілятор Portland Group , який його підтримує . Я не знайомий з дрібнішими деталями, але люди взагалі говорять про це з похвалою.
Крім того, для паралельних програм у вас є доступні OpenMP, MPI і тепер майбутні (і довгоочікувані) спільні масиви, які недавно реалізував компілятор Intel . Щоб не витрачати слова, Fortran має дуже тонку гаму "бібліотек" для паралельних програм.
Основні галузеві числові бібліотеки розроблені саме для цього, інших мов, що слідують більш-менш у портфоліо функцій / процедур.
Проте, все, про що говорилося, я б (залежно від того, коли він був написаний спочатку) рекомендував, якщо це, скажімо, код F77 чи старші, переписуючи його частково через час на нові діалекти - принаймні F90, якщо це можливо з функціями F2003. Папір / дисертації по цій темі була недавно опублікована (середній розмір PDF файлу вперед). Це не тільки може, якщо зробити це належним чином, забезпечити портативність на декількох платформах, але й полегшить подальше обслуговування.
ps Що стосується "майбутнього технічного обслуговування", це лише анегдот, який я іноді люблю згадувати. Під час написання дисертації я повторно використовував деякий код свого наставниці, написаний 35 років тому з часу написання. Вона складена лише з однією помилкою; заява відсутня в кінці, через помилку копіювання вставити :)
@DaveMateer (відповідь на коментар) - Я збираюся зробити коментар у наступному, який може бути трохи неввічливим, але, будь ласка, не сприймайте це неправильно, бо це в справедливих намірах.
Мені здається, ти вирішуєш цю "проблему" неправильно. Що я маю на увазі в декількох коротких моментах (бо тут дуже пізно, і моя здатність складати читабельні (не кажучи вже про зрозумілі) речення залишає мене після 22:00)
а) Ви згадали, що намагаєтеся мінімізувати додатковий час кодування, але ви розглядаєте можливість переписати мову, спеціалізовану для чисельних обчислень, на одну з кольорового вибору мов , якщо ви будете пробачити моє вираження
- деякі з яких, крім іншого, не підтримують багатовимірні масиви
- більшість із них непридатні для важкої чисельної роботи (про паралельну обробку можливостей Haskell і Hadoop, я визнаю, я нічого про це не знаю ... але ніколи не чув їх, навіть згаданих у цих колах)
- це, можливо, було випробувано, але я ніколи не чув про переписання з Fortran, мови для дискретних проблем, на функціональну мову
- нещодавно на comp.lang.fortran (спробуйте пошукати групи Google) було обговорено аспекти наукових обчислень "у хмарі"
(не хотілося б вас де-мотивувати, але якщо чесно, ніхто насправді не був впевнений, що цей термін навіть представляє, менше поодинці мали приклад успішного застосування. Більшість людей погодились, що потенціал існує, але поки що вони щасливі, як зараз це працює.) Дуже багато проблем не підходять для такої паралелізації.
б) які були б витрати на таке переписування? людей / год.
в) -правильні версії бібліотек для компіляції ... - є проблемою на будь-якій мові, якої неможливо уникнути, як би ви не дивилися на це.
г) Я чув про Python (справді приємна мова), який використовується в паралельних програмах на декількох заняттях, але його проникнення на цей ринок все ще не схоже на зростання, і його постійно змінюється природа робить його дуже поганим вибором для довгостроковий проект (думка про сумісність). Деяким людям це дуже подобається як "клеїть" мову.
Фу, якщо я придумаю щось інше, додамо це завтра. Треба поспати ...