Высокопроизводительные вычисления Python

C и Fortran традиционно используются для высокопроизводительных вычислений (материал, связанный с линейной алгеброй, решателями PDE и т.п.). Я заметил, что некоторые проекты, основанные на NumPy и SciPy, появились в HPC. Некоторые люди предполагают, что Python (с изменениями, конечно) может быть следующим языком HPC. Очевидно, что Python не может заменить эти языки, но, возможно, добавить вокруг них дружественную оболочку. Есть ли ресурсы для доказательства/опровержения этой гипотезы? Другими словами, Должны ли начинающие исследователи HPC добавлять Python в список языков, которыми они владеют? Если да, то почему?

ПРИМЕЧАНИЕ. Это не дискуссионный вопрос, в котором я прошу вас взвесить за и против языков. Я также не спрашиваю вас, может ли (на ваш взгляд) использовать Python для HPC. Я прошу ссылки (в форме академических документов, семинаров или контрольных показателей), которые исследовали такие претензии.

Ответ 1

Я думаю, что глобальный интерпретатор является самой большой причиной, по которой Python (и другие динамические языки (не все)) не будут использоваться для HPC. Для удаления GIL из Python потребуется значительная работа.

Поскольку GIL заставляет разработчиков использовать процессы для параллельных вычислений (которые требуют IPC или разделяемой памяти), Python не является идеальным языком для HPC. Это сообщение является интересным, прочитанным в отношении альтернатив GIL, Python, Python (таких как Jython и IronPython) и HPC.