Spec-Zone.ru › NumPy 2.0

F2PY и Windows Intel Fortran

Начиная с NumPy 1.23, поддерживаются только классические компиляторы Intel (ifort).

Примечание

Лицензионные ограничения для бета-программного обеспечения были ослаблены во время перехода к семейству компиляторов LLVM ifx/icc. Однако этот документ не поддерживает использование Intel в проектах нижележащего уровня из-за проблем, связанных с декомпиляцией компонентов и ответственностью.

Установка Intel для Python, а также Classic Intel C/C++ Compiler не требуются.

  • Компиляторы Intel Fortran доступны в комбинированном установщике, обеспечивающем как классические, так и бета-версии; их размер составляет примерно полтора гигабайта.

Рассмотрим классический пример генерации чисел Фибоначчи, fib1.f, заданный:

C FILE: FIB1.F
      SUBROUTINE FIB(A,N)
C
C     CALCULATE FIRST N FIBONACCI NUMBERS
C
      INTEGER N
      REAL*8 A(N)
      DO I=1,N
         IF (I.EQ.1) THEN
            A(I) = 0.0D0
         ELSEIF (I.EQ.2) THEN
            A(I) = 1.0D0
         ELSE 
            A(I) = A(I-1) + A(I-2)
         ENDIF
      ENDDO
      END
C END FILE FIB1.F

Для поклонников cmd.exe, использование командной строки Intel oneAPI является наиболее простым подходом, поскольку она загружает необходимую среду для ifort и msvc. Также предоставляются вспомогательные сценарии пакетной обработки.

# cmd.exe
"C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
python -m numpy.f2py -c fib1.f -m fib1
python -c "import fib1; import numpy as np; a=np.zeros(8); fib1.fib(a); print(a)"

Использование Powershell немного менее удобно, и данная конфигурация теперь работает с MSVC следующим образом:

# Powershell
python -m numpy.f2py -c fib1.f -m fib1 --f77exec='C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\bin\intel64\ifort.exe' --f90exec='C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\bin\intel64\ifort.exe' -L'C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\compiler\lib\ia32'
python -c "import fib1; import numpy as np; a=np.zeros(8); fib1.fib(a); print(a)"
# Alternatively, set environment and reload Powershell in one line
cmd.exe /k '"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" && powershell'
python -m numpy.f2py -c fib1.f -m fib1
python -c "import fib1; import numpy as np; a=np.zeros(8); fib1.fib(a); print(a)"

Обратите внимание, что фактический путь к локальной установке ifort может отличаться, и указанная выше команда должна быть соответствующим образом обновлена.

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/f2py/windows/intel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API