Relaterad fråga: Status för Mac OS inom vetenskaplig beräkning och HPC

Ett betydande antal mjukvarupaket inom beräkningsvetenskap skrivs i Fortran och Fortran försvinner inte. A Fortran-kompilator krävs också för att bygga andra programvarupaket (ett anmärkningsvärt exempel är SciPy ).

Mac OS X inkluderar dock inte en Fortran-kompilator. Hur ska jag installera en Fortran-kompilator på min dator?

Kommentarer

  • Det är inte bara Fortran. Mac-datorer har helt enkelt inte den höga kvaliteten som stöds förvar som Debian där allt bara fungerar. Att installera nästan alla saker som är komplicerade på en Mac är smärtsamt.

Svar

Välj ditt gift. Jag rekommenderar att du använder Homebrew. Jag har provat alla dessa metoder förutom ”Fink” och ”Other Methods”. Ursprungligen föredrar jag d MacPorts när jag skrev det här svaret. Under de två åren sedan har Homebrew vuxit mycket som ett projekt och har visat sig vara mer underhållbart än MacPorts, vilket kan kräva mycket PATH hacking.

Installation en version som matchar systemkompilatorer

Om du vill att versionen av gfortran ska matcha versionerna av gcc, g ++, etc. installerade på din maskin, ladda ner lämplig version av gfortran från här . R-utvecklare och SciPy-utvecklare rekommenderar denna metod.

  • Fördelar : Matchar versioner av kompilatorer installerade med XCode eller med Kenneth Reitzs installationsprogram , kommer sannolikt inte att störa OS-uppgraderingar; samexisterar snyggt med MacPorts (och förmodligen Fink och Homebrew) eftersom det installeras till /usr/bin. Stoppar inte befintliga kompilatorer . Behöver inte redigera PATH.
  • Nackdelar : Compiler stack blir riktigt gammal. (GCC 4.2.1 är den senaste Apple-kompilatorn; den släpptes 2007.) Installationer till /usr/bin.

Installera en förkompilerad, uppdaterad binär från HPC Mac OS X

HPC Mac OS X har binärfiler för det senaste släpp av GCC (vid skrivandet 4.8.0 (experimentellt)), såväl som g77-binärer och en f2c-baserad kompilator. PETSc-utvecklarna rekommenderar denna metod på deras FAQ .

  • Fördelar : Med rätt kommando installeras i /usr/local; up-to-date. Stoppar inte befintliga systemkompilatorer eller metoden ovan. Kommer inte att störa OS-uppgraderingar.
  • Nackdelar : Behöver redigera PATH. Inget enkelt sätt att växla mellan versioner. (Du kan ändra PATH, ta bort kompilatorinstallationen eller kludge runt den.) Kommer att klumpa ihop andra metoder för att installera kompilatorer i /usr/local eftersom kompilatorbinarier helt enkelt heter ”gcc”, ”g ++”, etc. (utan ett versionsnummer och utan några symlänkar).

Använd MacPorts

MacPorts har ett antal versioner av kompilatorer tillgängliga för användning.

  • Fördelar : Installationer i /opt/local; port select kan användas för att växla mellan kompilatorversioner (inklusive systemkompilatorer). Kommer inte att störa OS-uppgraderingar.
  • Nackdelar : Installation av portar tenderar att kräva en hel ”mjukvaruekos tem ”. Kompilatorer innehåller inte felsökningssymboler, vilket kan utgöra ett problem när du använder en felsökare eller installerar PETSc. ( Sean Farley föreslår några lösningar.) Kräver också att ändra PATH. Kan störa installationen av Homebrew och Fink. (Se det här inlägget på SuperUser .)

Använd Homebrew

Homebrew kan också användas för att installera en Fortran-kompilator.

  • Fördelar : Enkel att använda pakethanteraren; installerar samma Fortran-kompilator som i ”Installera en version som matchar systemkompilatorer”. Installera bara vad du behöver (i motsats till MacPorts). Kan installera en ny GCC-stapel (4.7.0) med det alternativa förvaret homebrew-dupes.
  • Nackdelar : Ärver alla nackdelarna från ”Installera en version som matchar systemkompilatorer”.Måste följa Homebrew-paradigmet när du installerar annan (icke-Homebrew) programvara till /usr/local för att undvika att förstöra något. Kan störa MacPorts och Fink-installationer. (Se det här inlägget på SuperUser .) Behöver ändra PATH. Installationer kan bero på systembibliotek, vilket innebär att beroenden för Homebrew-paket kan gå sönder vid en OS-uppgradering. (Se den här artikeln .) Jag skulle inte förvänta mig att det finns beroenden i systembiblioteket när du installerar gfortran, men det kan finnas sådana beroenden när du installerar andra Homebrew-paket.

Använd Fink

I teorin kan du använda Fink för att installera gfortran. Jag har inte använde det, och jag känner inte någon som har (och var villig att säga något positivt).

Andra metoder

Andra binära filer och länkar listas på GFortran wiki . Några av länkarna är redan listade ovan. De återstående installationsmetoderna kan eller kan inte komma i konflikt med de som beskrivs ovan. Använd på egen risk.

Kommentarer

  • Det fanns en tid då Fink var den föredragna pakethanteraren framför MacPorts. Jag slutade använda den för många år sedan eftersom stacken var gammal och inte underhållen och inte ' t inkluderar många av de bibliotek jag använde regelbundet. Med ungefär alla metoder här slutar du med några saker som hanteras av pakethanteraren och några saker du rullar för hand. Homebrew är bättre med ett sådant system, men det behöver mycket fler bibliotek för att vara riktigt konkurrenskraftiga med MacPorts.
  • Du kan också använda projekt som Sage (sagemath.org) eller Qsnake ( qsnake.com ), som skickar sin egen Fortran-kompilator och låter dig arbeta i " -miljö ", där du bara kan ringa " gfortran ".
  • Jag har fink ' s gfortran på min 10.5-låda, men har aldrig satt det på ett riktigt seriöst test. Det kommer att sammanställa cernlib och geant3, men jag har inte ' att inte köra några stora jobb under någon av dem nyligen.
  • För Homebrew är gfortran nu installerad med 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
  • Länken till Sean Farley ' s Wiki-sida fungerar inte längre (med hänvisning till hur man får felsökare att arbeta med MacPorts-installationer). Kan detta länkas om igen?

Svar

EasyBuild ( http://hpcugent.github.com/easybuild ) låter dig bygga och installera din egen uppsättning GCC-kompilatorer enkelt.

I grund och botten ger du det en enkel easyconfig (.eb) fil som anger vad du vill bygga (GCC + version + uppsättning språk du vill ha kompilatorer för + …), och sedan är byggnad och installation ett enda kommando. Jag skulle säga att det var lite som Homebrew, men det ger dig mer frihet.

Dessutom stöder EasyBuild många andra (vetenskapliga) mjukvarupaket som kan byggas och installeras med ett enda kommando, så det ”Det är värt att titta på det.

Ansvarsfriskrivning: Jag är en del av EasyBuild-teamet. Att bygga GCC (med gfortran inkluderad) borde fungera på OS X, men andra byggnader kan vara besvärliga. Vi jobbar med det, låt oss veta om du stöter på problem.

Kommentarer

  • Har du testat på OS X? När du säg ' ska fungera ' är det av erfarenhet eller förväntningar?
  • @DeerHunter: Av erfarenhet, min personliga bärbara dator är en Mac som kör OS X. Att bygga GCC fungerar, men EasyBuild är känt för att ha problem med vissa andra byggnader. Vi hoppas kunna undersöka det snart.
  • Uppröstning … Visas har använt EASY_BUILD för att paketera python-godsaker till RPM: er …
  • @DeerHunter EasyBuild har för närvarande inte ' för att packa saker till RPM. >

förvirrar EasyBuild (som ger ' eb ' kommando) med ' easy_install ', Python-installationsverktyget som tillhandahålls av setuptools / disitutils?

  • Du har rätt; slumpmässigt minne misslyckanden. Kommer ändå att kolla in EasyBuild. Förpackningen görs av fpm
  • Svar

    Jag skulle föreslå Intel Fortran Composer på MacOS. Det är bra, uppdaterat och fungerar. En negativ sak, det är inte gratis. Jag tror dock att det finns en kostnadsfri utvärdering på 30 dagar.

    Under Linux erbjuder de en gratis, icke-kommersiell version.

    Kommentarer

    • Linux-användare kan också installera Solaris Studio. Den är mycket väl integrerad (C / C ++ / Fortran-kompilatorer). Dbxtool är mycket användbart och analysator (t.ex. för att upptäcka rasförhållanden i openmp-program).

    Lämna ett svar

    Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *