Powiązane pytanie: Stan systemu Mac OS w informatyce naukowej i HPC

Znaczna liczba pakietów oprogramowania w dziedzinie nauk obliczeniowych jest napisana w języku Fortran, a ten nie odchodzi. A Kompilator Fortrana jest również wymagany do budowania innych pakietów oprogramowania (jednym godnym uwagi przykładem jest SciPy ).

Jednak Mac OS X nie zawiera Kompilator języka Fortran. Jak zainstalować kompilator języka Fortran na moim komputerze?

Komentarze

  • To nie tylko Fortran. Komputery Mac po prostu nie obsługują wysokiej jakości repozytoria, takie jak Debian, gdzie wszystko po prostu działa. Instalowanie prawie każdej skomplikowanej rzeczy na Macu jest uciążliwe.

Odpowiedź

Wybierz swoją truciznę. Polecam Homebrew. Wypróbowałem wszystkie te metody oprócz „Fink” i „Inne metody”. Pierwotnie wolę d MacPorts, kiedy napisałem tę odpowiedź. W ciągu dwóch lat od tego czasu Homebrew bardzo się rozrósł jako projekt i okazał się łatwiejszy w utrzymaniu niż MacPorts, co może wymagać dużo PATH hakowania.

Instalowanie wersja zgodna z kompilatorami systemu

Jeśli chcesz, aby wersja gfortran była zgodna z wersjami gcc, g ++ itp. zainstalowanymi na twoim komputerze, pobierz odpowiednią wersję gfortran z tutaj . Programiści R i programiści SciPy zalecają tę metodę.

  • Zalety : pasuje do wersji kompilatorów zainstalowanych z XCode lub z Kenneth Instalator Reitza ; raczej nie będzie kolidował z aktualizacjami systemu operacyjnego; dobrze współistnieje z MacPorts (i prawdopodobnie Fink i Homebrew), ponieważ instaluje się w /usr/bin. Nie blokuje istniejących kompilatorów . Nie trzeba edytować PATH.
  • Wady : Stos kompilatora będzie naprawdę stary. (GCC 4.2.1 to najnowszy kompilator Apple; został wydany w 2007 roku). Instaluje się w /usr/bin.

Instalowanie prekompilowanego, aktualnego pliku binarnego z HPC Mac OS X

HPC Mac OS X zawiera pliki binarne z najnowszymi wersjami wydanie GCC (w czasie pisania tego artykułu 4.8.0 (eksperymentalne)), a także pliki binarne g77 i kompilator oparty na f2c. Programiści PETSc zalecają tę metodę w swoim FAQ .

  • Zalety : Za pomocą odpowiedniego polecenia instaluje w /usr/local; aktualne. Nie blokuje istniejących kompilatorów systemu ani powyższego podejścia. Nie koliduje z aktualizacjami systemu operacyjnego.
  • Wady : trzeba edytować PATH. Nie ma łatwego sposobu na przełączanie się między wersjami. (Możesz zmodyfikować PATH, usunąć instalację kompilatora lub obejść ją). Spowoduje zablokowanie innych metod instalowania kompilatorów w /usr/local ponieważ pliki binarne kompilatora noszą po prostu nazwy „gcc”, „g ++” itd. (bez numeru wersji i bez żadnych dowiązań symbolicznych).

Użyj MacPorts

MacPorts ma wiele wersji kompilatorów dostępnych do użycia.

  • Zalety : instalacje w /opt/local; port select można używać do przełączania się między wersjami kompilatora (w tym kompilatory systemu). Nie koliduje z aktualizacjami systemu operacyjnego.
  • Wady : instalowanie portów ma tendencję wymagać całego „ekosystemu oprogramowania” tem ”. Kompilatory nie zawierają symboli debugowania, które mogą stanowić problem podczas korzystania z debugera lub instalowania PETSc. ( Sean Farley proponuje pewne obejścia). Wymaga również zmiany PATH. Może kolidować z instalacjami Homebrew i Fink. (Zobacz ten post na SuperUser ).

Użyj Homebrew

Homebrew może być również użyty do zainstalowania kompilatora Fortran.

  • Zalety : Łatwy w użyciu menedżer pakietów; instaluje ten sam kompilator Fortran, co w przypadku „Instalowanie wersji zgodnej z kompilatorami systemu”. Zainstaluj tylko to, czego potrzebujesz (w przeciwieństwie do MacPorts). Możesz zainstalować nowszy stos GCC (4.7.0), używając alternatywnego repozytorium homebrew-dupes.
  • Wady : Dziedziczy wszystkie wady po „Instalowaniu wersji zgodnej z kompilatorami systemu”.Może zaistnieć potrzeba przestrzegania paradygmatu Homebrew podczas instalowania innego oprogramowania (innego niż Homebrew) w /usr/local, aby uniknąć zepsucia czegokolwiek. Może kolidować z instalacjami MacPorts i Fink. (Zobacz ten post na SuperUser .) Musisz zmienić PATH. Instalacje mogą zależeć od bibliotek systemowych, co oznacza, że zależności pakietów Homebrew mogą się zepsuć po aktualizacji systemu operacyjnego. (Zobacz ten artykuł .) Nie spodziewałbym się zależności biblioteki systemowej podczas instalowania gfortran, ale mogą wystąpić takie zależności podczas instalowania innych pakietów Homebrew.

Użyj Fink

Teoretycznie możesz użyć Fink , aby zainstalować gfortran. Nie użył go i nie znam nikogo, kto to zrobił (i byłby skłonny powiedzieć coś pozytywnego).

Inne metody

Inne pliki binarne i linki są wymienione na wiki GFortran . Niektóre z linków są już wymienione powyżej. Pozostałe metody instalacji mogą, ale nie muszą, kolidować z opisanymi powyżej; używaj na własne ryzyko.

Komentarze

  • Był czas, kiedy Fink był preferowanym menedżerem pakietów zamiast MacPorts. Przestałem go używać lata temu, ponieważ stos był stary i nie był utrzymywany i nie ' nie uwzględnij wielu bibliotek, z których regularnie korzystałem. W przypadku każdej metody tutaj kończysz z niektórymi rzeczami zarządzanymi przez menedżera pakietów i niektórymi rzeczami, które toczysz ręcznie. Homebrew jest lepszy z takim systemem, ale potrzebuje znacznie więcej bibliotek, aby być naprawdę konkurencyjnym z MacPorts.
  • Możesz także użyć projektów takich jak Sage (sagemath.org) lub Qsnake ( qsnake.com ), które dostarczają własny kompilator języka Fortran i umożliwiają pracę w środowisku " ", gdzie możesz po prostu zadzwonić do " gfortran ".
  • Mam fink ' s gfortran na moim pudełku 10.5, ale nigdy nie poddałem go naprawdę poważnemu testowi. będzie kompilować cernlib i geant3, ale nie ' nie wykonuję ostatnio żadnych dużych zadań.
  • Dla Homebrew, gfortran jest teraz zainstalowany z brew install gcc: $ brew install gfortran gives the message: Error: No available formula for gfortran GNU Fortran is now provided as part of GCC, and can be installed with: brew install gcc
  • Link do Sean Farley ' s Wiki już nie działa (w odniesieniu do tego, jak zmusić debuggery do pracy z instalacjami MacPorts). Czy można ponownie połączyć?

Odpowiedź

EasyBuild ( http://hpcugent.github.com/easybuild ) pozwala łatwo zbudować i zainstalować własny zestaw kompilatorów GCC.

Zasadniczo dajesz mu prostą konfigurację (.eb) plik, który określa, co chcesz zbudować (wersja GCC + + zestaw języków, dla których chcesz kompilować + …), a następnie budowanie i instalowanie jest jednym poleceniem. Powiedziałbym, że to trochę jak Homebrew, ale daje ci więcej wolności.

Ponadto EasyBuild obsługuje wiele innych (naukowych) pakietów oprogramowania, które można zbudować i zainstalować za pomocą jednego polecenia, więc warto się temu przyjrzeć.

Zastrzeżenie: Jestem częścią zespołu EasyBuild. Tworzenie GCC (z dołączonym gfortranem) powinno działać na OS X, ale inne kompilacje mogą być kłopotliwe. Pracujemy nad tym, daj nam znać, jeśli napotkasz problemy.

Komentarze

  • Czy przeprowadzałeś już testy w systemie OS X? powiedz, że ' powinno działać ' czy wynika to z doświadczenia czy oczekiwań?
  • @DeerHunter: Z doświadczenia, mój osobisty laptop to komputer Mac z systemem OS X. Budowanie GCC działa, ale wiadomo, że EasyBuild ma problemy z niektórymi innymi kompilacjami. Mamy nadzieję, że wkrótce się tym zajmiemy.
  • Głosowanie … Okazuje się, że używaliśmy EASY_BUILD do pakuj gadżety Pythona do RPM …
  • @DeerHunter EasyBuild obecnie nie ' nie obsługuje pakowania rzeczy do RPM. Może ' ponownie mylące EasyBuild (które zawiera polecenie ' eb ') za pomocą ' easy_install ', narzędzie instalacyjne Pythona, które jest dostarczane przez setuptools / disitutils?
  • Masz rację; pamięć losowa awarie. I tak sprawdzi EasyBuild. Pakowanie odbywa się przez fpm

Odpowiedź

Proponuję Intel Fortran Composer na MacOS. Jest dobry, aktualny i działa. Jedna negatywna rzecz: nie jest za darmo. Myślę, że istnieje 30-dniowa bezpłatna wersja próbna.

W Linuksie oferują bezpłatną, niekomercyjną wersję.

Komentarze

  • Użytkownicy systemu Linux mogą również zainstalować Solaris Studio. Jest bardzo dobrze zintegrowany (kompilatory C / C ++ / Fortran). Dbxtool jest bardzo przydatny, podobnie jak analizator (np. Do wykrywania warunków wyścigu w programach openmp).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *