Razvoj slobodnog softvera otvorenog koda kao znanstvenoistraživački poduhvat – motivacija, izvedba i utjecaj
Vedran Miletic, HPC application expert, MPCDF, MPG; docent i voditelj grupe (na dopustu), FIDIT, UniRi
Centar za otvorenu znanost, Open Science Café, 26. lipnja 2024.
Dr. Vedran Miletic
- doktorat, FER; razvoj simulatora telekomunikacijske mreže ns-3
- postdok, Heidelberški institut za teorijske studije (Heidelberg Institute for Theoretical Studies, HITS); razvoj simulatora molekulske dinamike GROMACS
- pomoć u pripremi za intervju: pok. izv. prof. dr. sc. Željko Svedružić
- viši predavač, UniRi; razvoj softvera za predviđanje pristajanja malenih molekula na proteine RxDock, RxTx Research
- docent i voditelj grupe, UniRi / HPC application expert, Računarsko i podatkovno postrojenje Max Plancka (Max Planck Computing and Data Facility, MPCDF); razvoj simulatora molekulske dinamike GROMACS
- van fakulteta: Udruga Penkala (Radionica: Izradite svoj web u 4 sata!), Riječka podružnica Hrvatske udruge Linux korisnika i dr.
"Je li razvoj softvera za mene ili moju grupu? To je više za informatičare."
- izv. prof. dr. sc. Željko Svedružić (BioTech): razvoj alata za kvantnu kemiju CP2K
- prof. dr. sc. Nataša Hoić-Božić, izv. prof. dr. sc. Martina Holenko Dlab (FIDIT); doc. dr. sc. Jasminka Mezak (UFRi): razvoj sustava preporučivanja za računalom podržano učenje ELARS
- Petra Mrša, Dijana Protić (APURi): razvoj platforme za agregaciju digitalnih audiovizualnih umjetničkih djela CubeCommons
- brojne druge suradnje manjeg opsega: izv. prof. dr. sc. Kristijan Lenac (RiTeh), doc. dr. sc. Benedikt Perak (FFRi)
Sadržaj predavanja
- Vlasnički i slobodni softver
- Znanstveni softver
- Licence znanstvenog softvera: komercijalne, akademske, slobodne/otvorene
- Motivacija, izvedba i utjecaj
- Zaključak i idući koraci
Pogled u povijest
- u počecima softvera: otvoren kao i formule u fizici ili matematici
- komercijalizacija: prodaja hardvera i softvera u paketu
- kao Apple macOS danas
- nastanak i grananje Unixa
- npr. grafika samo SGI
- Berkeley Software Distribution (BSD)
- Microsoftova vizija: Windowsi kao univerzalno sučelje između različitog hardvera i različitog softvera
Slobodni softver i otvoreni kod
- softver koji možete prilagođavati svojim potrebama i dijeliti prilagođene verzije (!= besplatan softver)
- slično kao znanstvene rezultate
- Richard M. Stallman
- radi u MIT AI Labu; priča o printeru
- 1983. osniva projekt GNU, kratica za GNU's Not Unix (GNU zaista nije Unix jer je neovisno razvijen kao slobodni softver, a Unix je neslobodni softver)
- 1985. osniva Free Software Foundation (FSF) kako bi financirao razvoj slobodnog softvera
- Netscape/Mozilla 1998., preteča Firefoxa
- otvoreni kod (engl. open source)
Linus Torvalds, autor Linuxa
I often compare open source to science. To where science took this whole notion of developing ideas in the open and improving on other peoples' ideas and making it into what science is today and the incredible advances that we have had. And I compare that to witchcraft and alchemy, where openness was something you didn't do.
Video: Truth Happens Remix
Koliko vrijedi slobodni softver otvorenog koda?
- 2018. godine Microsoft je dao 7,5 milijardi američkih dolara kako bi preuzeo GitHub, najveću svjetsku platformu za razvoj i dijeljenje otvorenog koda
- ~= Facebook/Instagram/TikTok za programere
- zbog toga danas može ponuditi umjetnu inteligenciju Copilot koja pomaže programerima u razvoju softvera
- kroz Archive Program radi na očuvanju otvorenog koda za buduće generacije
- godinu kasnije IBM je za 34 milijarde dolara kupio Red Hat, tada vodeću kompaniju za razvoj slobodnog operacijskog sustava za poslovne korisnike temeljenog na jezgri Linux
- financijske institucije, zdravstvo, superračunala i dr.
Mentimeter: Što je za vas znanstveni softver?
menti.com
i kod 1522 0077
Znanstveni softver
- vrsta izvršnog softvera (kao web preglednik ili kasa u Konzumu)
- razvija se kako bi riješio neki problem u nekoj grani znanosti
- automatizacija repetitivnih postupaka
- roboti u stvarnom svijetu
- obrada podataka u računalu
- modeliranje i simulacija stvarnih sustava u računalu
- automatizacija repetitivnih postupaka
- može se dijeliti među znanstvenicima kao znanstveni rezultati ili komercijalizirati
Licence znanstvenog softvera
- komercijalne licence
- deseci različitih modela uvjeta i obračuna troškova (proporcionalno veličini superračunala, broju ljudi u grupi, broju eksperimenata/simulacija na godinu, ...)
- akademske licence
- besplatno ili simbolično niska cijena za nekomercijalno korištenje u akademske istraživačke i nastavne svrhe
- kompetitivna cijena za komercijalno korištenje u industriji
- slobodne, odnosno otvorene licence
Slobodne, odnosno otvorene licence znanstvenog softvera
- copyleft (~= zahtijevaju dijeljenje pod istim uvjetima)
- ne-copyleft
- Apache License
- MIT License
- BSD Licenses: najpopularnija Simplified BSD (FreeBSD) License
Motivacija: Hrvatska je periferija zapadnog prostora znanosti
- realnost je da su Kina, Rusija, Iran i s njima povezane manje države van zapadnog prostora znanosti
- nažalost je sve izraženija tendencija da objavljuju kod sebe na svom jeziku
- kaskamo u usporedbi sa zapadnijim državama: Nature metrike, ARWU, QS, THE, ...
- razlozi su dobro poznati: financiranje, organizacija, povijesni razlozi (prof. Ivan Đikić, prof. Gordan Lauc i brojni drugi)
- kroz razvoj znanstvenog softvera moguće je jače se povezati sa zapadnim kolegama i manje ovisiti o financiranju od strane MZO RH (HrZZ)
Motivacija: softver kao digitalni robot
- automatizacija repetitivnih radnji u stvarnom svijetu -> robot
- automatizacija repetitivne obrade podataka -> softver
- naravno, softver može i više od toga (!)
Motivacija: software is eating the world
- softver oko nas: pametni telefoni, televizije, auti, kućanski aparati, ...
- modeliranje i simulacije umjesto teško dostupnih, sporih ili skupih eksperimenata u procesu istraživanja
- većina objavljenih radova kombinira eksperimentalne i simulacijske metode, prilagođava ih po potrebi
Motivacija: stajanje na ramenima divova
if I have seen further [than others], it is by standing on the shoulders of giants.
-- Isaac Newton
- ~= daljnji razvoj postojećih (slobodnih) znanstvenih softvera
- slobodni softver je zbog toga posebno prikladan za razvoj znanstvenog softvera
Izvedba: osnovne potrepštine
- problem -> postupak rješavanja
- programski jezik: Python, Julia, R, Perl; C++, C, Fortran
- Python je danas lingua franca
- gotove biblioteke treće strane koje se mogu iskoristiti su lakše za pronaći u popularnijim programskim jezicima
- razvojno okruženje: Microsoft Visual Studio (VS) Code, JetBrains PyCharm ili sl.
Izvedba: odnos programera i korisnika softvera
- korisnik ima domensko znanje => problem, potreba
- programer ima tehničko znanje => razvoj, rješenje
- ista osoba može biti i korisnik i programer: jezici kao Python drastično su smanjili razinu potrebnih znanja za započeti razvoj softvera
- zajedno ulažu vrijeme i trud => softver usklađen s potrebama
Izvedba: alati za suradnički razvoj softvera
- platforme GitHub i GitLab omogućuju čuvanje promjena i dijeljenje razvijenog softvera:
- softver može steći zvjezdice ~= lajkovi na Facebooku, Instagramu i TikToku
- automatsko testiranje kod dodavanja promjena
- mogućnost praćenja prijavljenih problema, planova razvoja, ...
Izvedba: imamo li dovoljno računalnog hardvera?
- za početak je svako moderno računalo (do ~10 godina starosti) dovoljno dobro
- idući korak: Bura i Supek
- kad domaća supperračunala postanu premala: The European High Performance Computing Joint Undertaking (EuroHPC JU)
- alternativa: računala u oblaku (Amazon Web Services, Google Cloud Platform, Microsoft Azure)
Treba li razvijati softver u skladu sa svojim znanstveno-istraživačkim potrebama?
Ako već postoji gotov, vjerojatno ne
- iz znanstvene perspektive, upitan doprinos
- iz praktične perspektive, gubitak vremena i pogrešno uloženi trud
Ako postoji sličan ("skoro gotov"), bolje je doraditi
- uključivanje u razvoj postaje "penjanje na ramena divova"
- odlična prilika za povezivanje i suradnju sa znanstvenicima koji razvijaju i koriste taj softver
Ako ne postoji, da
- (anegdotalno) znanstvenici u HR općenito koriste bitno manje automatizacije repetitivnih radnji u procesu istraživanja u odnosu na znanstvenike u zapadnijim državama
- odabrati jezik i licencu, iskoristiti što više gotovih biblioteka treće strane
- moguće je uključiti suradnike i podijeliti posao (i zasluge)
Utjecaj: javno dostupne metrike
- softveri se distribuiraju putem različitih repozitorija, npr. conda-forge, PyPI
- imaju javne metrike broja preuzimanja
- GitHub/GitLab zvjezdice -> kao lajkovi na društvenim mrežama, pomažu rangiranju u pretragama
- arhiva verzija softvera na Zenodu pomaže nalažljivosti softvera povezanim s radovima
- ima javne metrike broja pogleda
- može se citirati pomoću DOI
Utjecaj: vidljivost na tražilicama
- dokumentacija (ili web sjedište) znanstvenog softvera navodi autore, grupe i sveučilišta te može imati poveznice na njihova web sjedišta
- rast posjećenosti dokumentacije i rast broja poveznica na nju utječe na rast važnosti web sjedišta autora, grupa i sveučilišta
- spontani nalaznici mogu doprinijeti softveru i postaju potencijalni suradnici u znanstvenim projektima
Utjecaj: objavljeni radovi i citati
- u mnogim područjima moguće je objaviti znanstveni rad u časopisu koji opisuje razvijeni znanstveni softver
- ponekad bude dio rada koji opisuje istraživanje u kojem je taj softver prvi put iskorišten
- korisnici rado citiraju softver koji koriste iz zahvalnosti što im je besplatno dostupan i što ga mogu prilagoditi svojim potrebama
- rad koji opisuje softver može lako imati 10x ili 100x više citata od prosječnog rada neke grupe
Uspješni primjeri
- GROMACS, OpenMM
- samo naš tutorial za GROMACS ima više od 10 000 pogleda mjesečno
- PyMOL, VIAMD
- PLUMED
- OpenFOAM
- NWChem
- Gephi
- Orange
- PyTorch
Promjene u pravnom okviru akademske zajednice
- u akademskoj zajednici u UK, uz mjesta doktoranda, predavača, profesora i dr., već više od 10 godina postoji radno mjesto inženjer znanstvenog softvera (engl. research software engineer, RSE)
- u DE/FR se ljude zapošljava na radna mjesta za poslijedoktorande, istraživače i znanstvenike koji su članovi osoblja, ali nisu voditelji grupa
- kako RH slijedi zapadne trendove, realno je očekivati da će se pravni okvir na neki način kretati u tom smjeru
Zaključak i idući koraci
- grupe koje razvijaju znanstveni znanstveni softver često surađuju i s industrijom
- grupe koje razvijaju znanstveni slobodni softver otvorenog koda često budu jake i međunarodno poznate, iako nisu nužno uvijek dio najjačih sveučilišta
- mogućnost za pozicioniranje grupa s hrvatskih sveučilišta (pa i UniRi)
- danas je razvoj znanstvenog softvera istovremeno kompetitivan i kolaborativan
- razvojni alati sve bolji => kvaliteta razvijenog softvera je sve bolja
- teško je biti bolji od nekog postojećeg rješenja na kojem više grupa radi desetljećima i koje ima velik broj korisnika
- bolje je ući u nišu koja nije bila pokrivena ili se otvorila napretkom u znanosti (npr. šira primjena umjetne inteligencije)
Open Playground
Hvala na pažnji!
Prezentacija: miletic.net/otvorenaznanost2024
Osobna stranica: https://vedran.miletic.net/
Kontakt e-mail: vedran@miletic.net
Author: Vedran Miletić