Arturo Quirantes blogja

sierra

Az egyik dolog, amit kritizálnak a spanyol egyetemen, az az, hogy nem nyújt olyan ismereteket, amelyek lehetővé teszik a hallgatók számára, hogy később hozzáférjenek a "munkaerőpiac" nevű dologhoz. Ha eltekintünk attól a ténytől, hogy az egyetem nem a gyár az alkalmazottak számára, kiderül, hogy a jövőbeni munkájában olyan eszközökre és ismeretekre lesz szüksége, amelyekre még csak nem is gyanakszik, amikor pályára lép; és fordítva, sok mindent megtanul, amire később nem lesz szüksége. A probléma az, hogy nem tudja, hogy a táskában hordott eszközök közül melyiket fogja használni a végén, ami néha arra gondol, hogy a plusz súly akadályt jelent. Ez nem.

Jómagam jó példa vagyok. Tizennyolc éves korom óta foglalkozom a fizikával, először hallgatóként, majd tanárként. Megtanultam a csoportelméletet, matematikai módszereket, áramköröket, kvantumot, relativitáselméletet, statisztikai mechanikát és mindent. Ezek többnyire nem voltak hasznosak számomra a munkám során. Igen, két dologban voltak hasznosak: egy jó általános tudományos kultúra biztosítása számomra, amely lehetővé teszi számomra, hogy többek között könyveket írjak és Naukasban jelenjek meg anélkül, hogy túl sokat csavarnék; és megtanulják a fizika működését és milyen eszközeink vannak.

Soha nem tudhatod, mikor lehet szükséged a tanultakra. Izzadság és könnyek kellettek ahhoz, hogy átmenjek a csoportelméleti tanfolyamon. Tudod, azóta olvasott összes tudományos cikk közül hányan beszéltek a csoportelméletről? Csak egy. Egy. De annak köszönhetően, amire a csoportelméletből emlékeztem, el tudtam olvasni és megértettem. Végül a cikk nem volt hasznos számomra, mert más számítási módszert használok, de különben a cikk matematikai kapcsolatai obszcén mennyiségű munkát spóroltak volna meg. Hasznos lehet számomra a jövőben.

És most eljött az ideje, hogy egy sötét titkot eláruljak rólam. Úgy gondolsz rám, mint fizikusra, van egy hivatalos dolgozatom, amely azt mondja, hogy vagyok, diplomamunkát készítettem a fizikáról, fizikusként keresem meg a kenyeremet, és a Twitteren @elprofedefisica néven ismerek. De valójában napi szinten tudod, mi az én igazi foglalkozásom?

Felfedem neked: Számítógépes programozó vagyok.

Nos, oké, fizikus vagyok, magazinoknak írok dolgozatokat a fizikáról és mindezekről. Az történik, hogy a számítógépes szimulációkért felelek a csoportomban. Egy olyan projekttel kezdtem, amelynek célja a mikroszkopikus részecskék méretének mérése fényszórás alkalmazásával. Vagyis egy fénysugarat vet egy tárgyra, és megvizsgálva az általa szórt fényt, megtudhat olyan dolgokat, mint a mérete, alakja vagy összetétele.

Ha az objektum sokkal nagyobb, mint a felhasznált fény hullámhossza, akkor közelítések sorozatát lehet alkalmazni, és az a jó, hogy az így kapott képletek nagyon egyszerűek. Emlékezhet a Snell törés törvényére, a visszaverődés törvényére ("a beesési szög megegyezik a törés szögével") és mindezekre. Ha viszont a részecske sokkal kisebb, mint a fény hullámhossza, akkor a Rayleigh-közelítés néven ismert egyszerűsítés alkalmazható, amely lehetővé teszi a szórt fény, az elnyelt fény, a polarizáció mértékének és minden másnak a kiszámítását is. ... érdekes mindent kiszámítani egyszerű módon.

A két eset között, amikor a részecske összehasonlítható méretű a hullámhosszal, akkor vannak problémáink. Még a legegyszerűbb esetben is, amikor gömb alakú részecskeink vannak, az elektromágneses mező egyenletei összetettek; és nem mondok semmit, amikor a részecskének nincs gömb alakja. Ilyen esetekben gyors és nagy teljesítményű számítógépekre van szükségünk a számítások elvégzéséhez.

Ez amit csinálok. Amíg kollégáim beállítják a műszereket és mérik, én elkészítem a szükséges számítógépes kódokat a számítások elvégzéséhez, valamint az elmélet és a kísérlet összehasonlításához. Ettől vagyok a csoport programozója, nem csak én, hanem az egyik fő. Éveket töltöttem a fényszórási tulajdonságok kiszámításával minden típusú részecskéhez, és az általunk létrehozott adatbázisok több száz gigabájtot ölelnek fel. Mindez programozói tudásomnak köszönhető. És honnan szereztem ezt az ismeretet? Nos, egy elektromágneses témáról. Nem is volt napirenden, de a gyakorlatokat számítógéppel végezték, így menet közben kellett megtanulnunk programozni.

Ne feledje, hogy a nyolcvanas évekről beszélünk. Most az egyetem jövőbeli fizikusainak saját tantárgyuk van a programozásról, de a nyolcvanas években a számítógépek egzotikus cikkek voltak, az Internet nem is létezett, és a tanulás módja az volt, hogy ott találja meg az életét. Szerencsére tudtam néhány BASIC programozási nyelvet, és ez segített abban, hogy elkezdhessem megtanulni egy új FORTRAN 77 nevű nyelvet.

Amikor elmagyaráztam a bátyámnak (aki informatikát tanult), majdnem az arcomba nevetett (és nélküle szinte). Már senki sem programozott komolyan azon a régi és merev nyelven, amelynek kezdete az 1950-es évekig nyúlik vissza. Mintha azt mondtam volna neki, hogy vásároltam egy abakuszt a számításhoz. Később megtudta és felismerte, hogy nem butaság. Kiderült, hogy a FORTRAN (FORmula Translation) a szigorúság nyelve volt a tudományos számítástechnika világában. Ha Windows vagy Mac környezetben próbál programokat létrehozni, akkor erre a nyelvre kell gondolnia, de a nagy számítástechnika területén nincs ennél jobb. Ez a végső számdaráló.

Évek teltek el, és FORTRAN továbbra is a király a kastélyában. Az összes szuperszámítógép, amelyen dolgoztam, az egyetemtől kezdve a RES (Spanyol Szuperszámítógépes Hálózat) programjaihoz különböző szoftvercsomagokkal, különböző sorfeldolgozási módokkal rendelkezik, és mindegyik világ, amikor a programokat farokba kell helyezni, de abszolút mindegyikük két közös elem: C ++ és FORTRAN fordító. Valójában félévente összeállítják a Top 500 nevű listát, amely tartalmazza a világ ötszáz leggyorsabb és legerősebb számítógépét. Az osztályozás megállapításához egy LINPACK nevű számítógépes csomag futtatására készültek, amely be van programozva ... gondolod? Igen, a FORTRAN-ban.

Az egyik dolog a legjobban tetszik a FORTRAN-ban, hogy bárhol futtathatom a programjaimat. Nem kell verziót készítenem a PC-mre, és egy másikat a Mare Nostrum számára, mert a program ugyanaz a példánya mindkét gépre érvényes. Amikor hozzáférést kapok egy új szuperszámítógéphez, az időm a program sorba állításának új módjának elsajátítására szolgál, de maga a program ugyanaz. Ezenkívül a PC-s verziónak van egy retro utóíze, amit szeretek. Megnyitom a parancssori tolmács ablakot, megjelenik egy fekete képernyő zöld vonalakkal (én így állítottam be, romantikus vagyok), és úgy tűnik számomra, hogy egy hetvenes évekbeli filmben vagyok. Igen, természetesen tudom, hogy vannak grafikus környezetek a fordítás megkönnyítésére, de inkább a parancssort részesítem előnyben. Erőteljesebb, gyorsabb és hatékonyabb, és visszavezet egy olyan időszakba, amikor a számítógépet az Ön tudásával vezérelték, nem pedig egérrel vagy clip art-tal. Hobbim.

Egyébként, ha kíváncsi vagy a működésére, itt megtekintheted néhány programomat és alprogramomat.

Tudom, hogy sok programozási szubrutin már össze van állítva és elérhető (tehát nem kell megtanulnia, hogy mondjuk mátrixokat szorozzon, amikor szükség van rá), de szakmai karrierem elején megtudtam, hogy amikor megváltoztatják a FORTRAN verziót vagy a szuperszámítógép gyártója, az alprogramok is megváltoznak. Azóta elkészítem saját szubrutinjaimat, felveszem őket a főprogramba, és olyan boldog vagyok, mint egy fogoly.

2015-ben a FORTRAN továbbra is ugyanolyan hasznos, mint valaha, amikor tudományos számításokat kell végezni. Nem ismerem minden lehetőségét, de sokukat megtanultam az évek során, és irodám egyik polcán a nyolcvanas évek elejétől a FORTRAN-77 kézikönyv nyugszik, amely a tanszéken volt. Évekkel ezelőtt fogtam meg, és csak holtan hideg kezemből fogom kiszabadítani. Nos, talán egyszer átadom a fiamnak, aki most fizikát tanul. Talán így talál munkát a NASA-nál, irányítva a Voyager szondákat.

Ez nem vicc. Emlékszel a Space Cowboys című filmre? Clint Eastwood nyugalmazott mérnök által játszott karakter az egyetlen, aki tudja, hogyan működik egy műhold a pályán. Ez egy nagyon régi rendszer, és a NASA szakértői tudomásul veszik tudatlanságát: „Meg akarja próbálni kitalálni ezt a rendetlenséget? Ennek a fazéknak a vezetési rendszere őskori. Még ezek a srácok sem értik. A mikroprocesszor előtt van, minden ... előtt. »

Nos, kiderült, hogy valami nagyon hasonló történt a való világban. Larry Zottarelli nemrég vonult vissza aktív szolgálatából. Most nyolcvanéves. Negyvenhárom évesen számítógépes programozóként csatlakozott a Voyager missziós csapathoz. Olyan speciális felszereléssel, mint a Voyagers, a programozóknak sok trükköt kellett használniuk, és nem mindegyikük írásos. Néha a dokumentumok elvesznek, máskor elavultak. Ha érdekel a téma (amit én adatrégészetnek hívok), itt, itt és itt hagyok példákat.

Zotarelli a Voyager szinte minden trükkjét ismerte, azon túl, amit a kézikönyv specifikációi jeleztek; és az, hogy a használati utasítás nem ad meg minden választ. Például egy alkalommal kiderült, hogy az űrszonda néhány repülési szoftvere 2010-ben elérhetővé válik. Senki sem tudta, miért. A műszaki dokumentumok nem világítottak meg új fényt. A NASA felvette a kapcsolatot az összes élő Voyager programozóval, és senki sem tudott a kapcsolat megszakadásáról. Lehet, hogy valaki az 1970-es években úgy gondolta, hogy a szonda nem él túl sokáig, és beépített egy távoli deaktiváló rendszert, lehet, hogy programozási hiba volt, vagy talán egy olyan frissítés része volt, amelyet soha nem dokumentáltak jól. Szerencsére a bontás végül megszakítható, de a mai napig senki sem tudja, ki programozta be, vagy miért.

Most Larry Zotarelli, a Voyager csapat utolsó eredeti programozója végleg visszavonul. Akik helyettesítik, természetesen megteszik, amit csak tudnak, és biztosan ismerik a FORTRAN-t, de tudják-e, hogy milyen meglepetések rejlenek a szonda programozási rendszerében? Nem hiszem el. A kilencvenes évek óta használom ezt a programozási nyelvet, és még mindig nem ismerem a tömeg felét; de még a kézikönyv fejből történő ismerete sem garantálja, hogy a Voyager szoftverben nincsenek dokumentálatlan trükkök, hibák vagy fejlesztések.

Az írás idején a Voyager 1 űrszonda alig több mint 20,003 millió kilométerre van a Földtől. És még mindig működik. A fő korlát, amellyel találkozik, az energiahiány. Amint ebben a cikkben említettem, 2020-ra még a NASA Deep Space Network antennái sem képesek rögzíteni az üzeneteket.

Van azonban remény. "Energiaellenőrzést" végezhet az egyes alkatrészek pontos energiaigényének meghatározásához és a leállítási eljárások megállapításához, mindezt a rendelkezésre álló energia maximális kihasználása érdekében. Ehhez tudnia kell, hogy miért hoztak bizonyos mérnöki döntéseket az 1970-es években, milyen értelme volt a fedélzeti műszerek teljesítménykövetelményeinek megállapításakor, és mennyire rugalmasan tudjuk megadni ezeket a követelményeket. Valóban 3,2 wattra van szüksége ennek az alrendszernek, vagy 3 elég, a többi pedig biztonsági tartalék? A legjobb tudásforrás ehhez a műszaki dokumentációban és a programozóinak agyában található. Mindkettő életkori okokból kudarcot vall: elvesznek a papírok és az emlékek is.

A FORTRAN egy olyan programozási nyelv, amely, ahogy a Terminator Genesys-ben mondják, "régi, nem elavult". A korában sokkal hűvösebb más nyelvek eltűntek. Annyira meg vagyok róla győződve, hogy javaslatot teszek egy fogadásra: egy sörre, amely húsz év múlva a Java vagy a PHP lesz a történelem. Elfogadhatja vagy sem, de mindenesetre itt van egy tipp a barátaimnak, BOFH-knak: vigyázzon jól a programozási kézikönyvekre, és vigyázzon rájuk, mint az arany ruhában. Már megvan az enyém.