Master project: Automated autotuning for energy efficiency for the SKA

Chris Broekema, ASTRON and University of Cambridge

1 Introduction

When co-designing hardware and software we rely on benchmarked codes to estimate the performance of particular hardware implementations for certain algorithms. These benchmarks are generally compiled using default settings. To ensure we can easily and conveniently benchmark codes of interest on a large set of platforms, with minimal setup required, a benchmarking framework based on the existing software tools Spack and ReFrame has been developed for the Square Kilometre Array (SKA).

With autotuning in this context, we mean the practice of randomizing compiler  flags and algorithm parameters to find the most optimal settings for the code under investigation. This often leads to unexpected combinations of flags and parameters, and performance improvements may be dramatic. Much of the work done for autotuning is still highly labour intensive, requiring manual intervention. The above mentioned combination of software tools could be a useful addition to this work, allowing the automation of much of the process. The figure of merit generally used for deciding the most optimal settings in autotuning is absolute performance. However, considering the current climate crisis and taking into account that the highest absolute performance of a system is generally not the most energy efficient way to run such a system, changing this to an energy aware metric would be very valuable, especially for an exascale project like the SKA. In this project we combine the three subjects above into a single coherent investigation.

2 Automated autotuning for energy efficiency

This project extends an existing benchmarking framework designed for the SKA SDP with two additional features (one of which is already at least partly implemented). By adding (more) energy measurement facilities we gain the ability to select energy efficiency as the primary figure of merit for our systems. Adding the ability to autotune benchmarks in an automated way gives us the confidence that all measured results utilize the tested resources in the best possible way, without resorting to platform dependent optimizations. Finally, by combining the energy efficiency figure of merit with automatic autotuning allows us to automatically optimize software and hardware to be as energy efficient as possible.

1. literature study on autotuning tools and best practice

2. identify and commission testbed (this could be a laptop or desktop, but ideally we’d suggest a dedicated server of some sort)

3. install and explore the existing SKA SDP benchmarking framework

4. add energy measurement facility as a gure of merit, either

• using sensors in the node using tools like Intel RAPL, GEOPM or others), or

• using external sensors such as those in Power Distribution Units (PDUs)

5. add a looping benchmark with randomized compile time  tags to the system (use literature study results for this)

6. experiment, measure and report 

7. generate merge request for upstream and write thesis

Master project: Performance analysis of radio frequency interference detection in radio astronomy

Michael Mesarcik & Rob van Nieuwpoort, UvA

Radio Frequency Interference (RFI) is a growing concern for modern radio telescopes due to their increasing sensitivity and the proliferation of consumer electronics that depend on electromagnetic emissions. As a result, approaches for RFI detection and mitigation have become a necessity in modern radio observatories. Processing pipelines are employed in observatories that perform RFI detection and mitigation in a post correlation setting, using algorithms such as AO-Flagger [1] or more recently using deep learning architectures based on UNET [2].

Currently, deep learning approaches to RFI detection have been based on supervised architectures [3, 4, 5, 6]. In this case, due to the unavailability of human-labelled datasets, supervised methods are trained and evaluated on simulated interference, or ground truth maps generated by heuristic methods such as the AO-Flagger. In effect, the generalisability of RFI detection algorithms is limited on out-of-distribution RFI samples that the algorithms have not yet been exposed to during training. Therefore we propose the use of the Nearest-Latent-Neighbours (NLN) [7] to overcome the generalisability problems of supervised methods for RFI detection.

In this master’s project you will be required to do the following:

1. Analyse and model the performance of existing supervised RFI detection algorithms.

2. Design a computationally efficient and scalable nearest neighbour search framework for the implementation of the NLN algorithm [7]. This is expected to be the main component of this project.

3. Compare the performance of the two approaches and suggest future approaches for efficient RFI detection.


[1] A. R. Offringa, J. J. Van De Gronde, and J. B. Roerdink, “A morphological algorithm for improving radio-frequency interference detection,” Astronomy and Astrophysics, vol. 539, 2012.

[2] O. Ronneberger, P. Fischer, and T. Brox, “U-net: Convolutional networks for biomedical image segmentation,” Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 9351, pp. 234–241, 2015.

[3] J. Akeret, C. Chang, A. Lucchi, and A. Refregier, “Radio frequency interference mitigation using deep convolutional neural networks,” Astronomy and Computing, vol. 18, pp. 35–39, 2017.

[4] A. V. Sadr, B. A. Bassett, N. Oozeer, Y. Fantaye, and C. Finlay, “Deep learning improves identification of Radio Frequency Interference,” Monthly Notices of the Royal Astronomical Society, vol. 499, no. 1, pp. 379–390, 2020.

[5] J. Kerrigan, P. L. Plante, S. Kohn, J. C. Pober, J. Aguirre et al., “Optimizing Sparse RFI Prediction using Deep Learning,” Monthly Notices of the Royal Astronomical Society, vol. 11, no. February, pp. 1–11, 7 2019. [Online]. Available: Optimizing sparse RFI prediction using deep learning | Monthly Notices of the Royal Astronomical Society | Oxford Academic

[6] Z. Yang, C. Yu, J. Xiao, and B. Zhang, “Deep residual detection of radio frequency interference for FAST,” Monthly Notices of the Royal Astronomical Society, vol. 492, no. 1, pp. 1421–1431, 2020.

[7] M. Mesarcik, E. Ranguelova, A.-J. Boonstra, and R. V. van Nieuwpoort, “Improving Novelty Detection using the Reconstructions of Nearest Neighbours,” Under review, 11 2021. [Online]. Available:

Master project: Accelerating software RDMA with io_uring

Chris Broekema, ASTRON and University of Cambridge
Rob van Nieuwpoort, eScience Center & UvA

1 Introduction

Modern radio astronomy relies on large volumes of instrument data being transported to a compute facility. For security reasons, receiving network data requires the kernel to parse the link layer through application layer protocol headers before the payload is delivered to user space. The context switches between kernel and user space and the need to copy all data from kernel to user space make this expensive in terms of used CPU cycles.

To mitigate the high CPU load and to ensure high and stable throughput the use of Remote Direct Memory Access (RDMA) is currently being investigated both for the Dutch LOFAR array and the future Square Kilometre Array. While RDMA does perform well and significantly reduce the required CPU cycles for data transport, it needs hardware support, and thus introduces a hardware dependency. Furthermore, since RDMA traffic is handled in hardware, it is invisible to the kernel. Therefore, our standard monitoring and tracing tools, such as tcpdump and wireshark will not (by default) be able to see this traffic. For development and debugging a software RDMA implementation, called rdma_rxw, exists, but this is very slow.

A relatively new introduction to the Linux kernel is io_uring. This new interface allows a user space program to define submission and completion ring buffers that are shared with the kernel. In modern Linux kernel versions these shared ring buffers can be offered to about 28 different system calls. While context switches are still required, data no longer needs to be copied from kernel space to user space. This should allow for a better performing software RDMA implementation to be developed.

2 Software RDMA using io uring

This project aims to take the existing software RDMA implementation in the Linux kernel and investigate whether performance can be improved using the io_uring interface. The project will be divided into the following phases:

1. initial investigation, including:
(a) identify, build and commission a test-bed
(b) getting familiar with io_uring, liburing and rdma_rxe
(c) baseline measurements with rdma_rxe, normal Ethernet and hardware RDMA
2. identify the performance hot spot of the rdma_rxe interface (using profiling)
3. implement io_uring accelerated version of software RDMA interface
4. measure and document performance
5. write report, clean up and push code to public repository
6. (stretch goal) write a merge request for upstream Linux adoption

Considering the need to work with somewhat complex and low-level existing code, we suggest this should be a rather large project for a masters student. A small proof of concept at higher level has been developed previously. This used a convenient high-level library: liburing. It is unclear whether this library can be used for software RDMA, or if the bare base interface must be used. It is expected though that the latter will be required for an eventual merge request to be accepted.

3 Performance

Performance measurements will focus on observed throughput and CPU use
during such throughput. We suggest that in additional to this, continuous high
frequency energy measurements during throughput experiments would yield
valuable additional information.

Another aspect that can be measured is the impact of RDMA on energy efficiency, see also:

Przemyslaw Lenkiewicz, P. Chris Broekema, and Bernard Metzler:
Energy-Efficient Data Transfers in Radio Astronomy with Software UDP RDMA
The 3nd International Workshop on Innovating the Network for Data Intensive Science (INDIS) 2016

Chris Broekema defended his PhD thesis

On Monday September 28, Chris Broekema, a PhD candidate I supervised together with Henri Bal, successfully defended his PhD at the Vrije Universiteit in Amsterdam !

The title of Chris’ thesis is Commodity compute- and data-transport system design in modern large-scale distributed radio telescopes.

Below, the abstract of Chris’ thesis.

In this thesis, we study the architecture and design process of commodity compute and data-transport systems in large-scale distributed radio telescopes. The goal of such systems is to facilitate the maximum viable amount of scientific discovery for the investment made. To aid our discussions, we first introduce a model to more formally express value and cost of compute systems. This allows more granular evaluation of various systems, based not just on their cost, but on their value potential as well.

We argue that, since modern radio telescopes are generally capable of producing overwhelming volumes of data, the data-transport system in such an instrument should be architected and designed together with the compute infrastructure. Examples both in the current LOFAR telescope, as well as in the Square Kilometre Array still under development, show that this co-design of data-transport and compute systems has significant
value benefits.

When these systems are considered together, interesting optimisations on the boundary of the two may be considered. We show two such optimisations that focus on controlling data-flows and reducing energy consumption of such data-flows respectively.

Finally we consider the future. Over the last couple of decades compute capacity has continued to increase both predictably and dramatically. Current manufacturing technologies are approaching physical limits, which make this trend unsustainable, at least for conventional technologies. We inventory possible alternative technologies and how these may be applied in support of a radio telescope.

Great work Chris, and congratulations!

[Dutch] Oratie, 8 mei 2019

De e-scientist. Universele wetenschapper of specialist? Mevrouw de Rector Magnificus, Mijnheer de Decaan, Leden van het curatorium van de leerstoel “Efficient computing for eScience”, Bestuursleden van de Stichting Nederlands eScience centrum, Geachte dames en heren, Lieve Lucas en Kayleigh, In de komende drie kwartier wil ik graag wat vertellen over mijn onderzoek. Ik begin meteen … Continue reading “[Dutch] Oratie, 8 mei 2019”

De e-scientist. Universele wetenschapper of specialist?

Mevrouw de Rector Magnificus,
Mijnheer de Decaan,
Leden van het curatorium van de leerstoel
Efficient computing for eScience,
Bestuursleden van de Stichting Nederlands eScience centrum,
Geachte dames en heren,
Lieve Lucas en Kayleigh,

In de komende drie kwartier wil ik graag wat vertellen over mijn onderzoek. Ik begin meteen met een filmpje.

1.      eScience

Courtesy Ziggo Sport / FOM

In 2017 zat ik bij deze Formule 1 race op het Belgische Spa Francorchamps, samen met 265.000 andere fans. Waarom laat ik dit nu zien? Na de race werd bekend dat de oorzaak van het uitvallen van Max Verstappen een softwareprobleem in de Renault motor was. Er was dus niets kapot, het was gewoon een bug.

Dat is interessant. Wat kunnen we hier nu van leren? Het eerste punt is dat software overal is, en van groot belang is voor onze maatschappij, ook al is het vaak niet zichtbaar. Software zit dus in auto’s, maar ook in vliegtuigen, wasmachines, verlichting, televisies, en, waar mijn interesse ligt: in wetenschappelijke instrumenten. Daar wil ik het vandaag over hebben.

Het tweede punt is dat het toch wel opmerkelijk is dat dit mis gaat. De belangen in de Formule 1 zijn groot. In totaal kijken er jaar wereldwijd 600 miljoen kijkers naar de Formule 1. Red Bull investeert ongeveer 350 miljoen euro per jaar in het team. De Renault motor kost rond de 50 miljoen naar het schijnt. Dus, zelfs als de belangen en het budget zo groot zijn, lukt het niet om software te maken die werkt. Kennelijk is het moeilijk om goede software te schrijven. Helaas is er geen enkele reden om aan te nemen dat het met software in de wetenschap beter gesteld is. Sterker nog, er is maar weinig budget, grote tijds- en prestatiedruk, en de software wordt vaak geschreven door wetenschappers zonder een formele training in software engineering. “What could possibly go wrong?”

Een derde observatie is dat het hier gaat om een complex systeem. Er zijn tientallen losse componenten met aparte computers in een auto, die met elkaar communiceren via een netwerk. Dat bemoeilijkt het programmeren van het systeem. Sterker nog, het blijft niet beperkt tot de auto zelf, er wordt in de Formule 1 live telemetrie data naar de pit muur gestuurd voor analyse. Vanaf die plek wordt het via snelle verbindingen naar de fabriek in Engeland gestuurd, waar het nog verder geanalyseerd wordt, en onder andere wordt gebruikt om live allerlei simulaties en modellen te draaien, waarvan de output weer wordt teruggekoppeld naar de pit muur, waar dan strategische beslissingen worden genomen. We noemen zo’n systeem met componenten op verschillende fysieke plekken die samenwerken een gedistribueerd systeem. Ook in de wetenschap zien we meer en meer gedistribueerde systemen, en die zijn dus nog moeilijker te programmeren dan gecentraliseerde systemen. We hebben dus een probleem.

Mijn onderzoek houdt zich bezig met grootschalige wetenschappelijke software, en in het bijzonder software van grootschalige gedistribueerde systemen en instrumenten.


1.1.   Inleiding eScience: ICT in de wetenschap

Wetenschap wordt steeds complexer en heeft meer en complexere ICT nodig. Het toepassen en onderzoeken van innovatieve complexe ICT in andere wetenschappelijke disciplines noemen we eScience. Een echt kenmerk van eScience is dat het onderzoek plaatsvindt in nauwe samenwerkingsverbanden tussen informatici en wetenschappers in de disciplines. Zoals u kunt zien in deze voorbeelden bestrijkt eScience alle wetenschapsgebieden, van de levenswetenschappen tot klimaatonderzoek en hoge-energie fysica. De voorbeelden betreffen concrete projecten die wij bij het Nederlands eScience centrum uitvoeren of uitgevoerd hebben.

Ook technisch is eScience enorm breed. Afhankelijk van de wetenschappelijke vraag en het vakgebied kan het gaan om grootschalige simulaties, het koppelen van modellen, het integreren van observaties en modellen, het koppelen van verschillende databronnen, het zoeken in ongestructureerde data, visualisatie, machine learning en nog veel meer.

Het is enorm uitdagend om state-of-the-art informaticaonderzoek toe te passen om lastige wetenschappelijke problemen aan te pakken. Juist omdat dit zo moeilijk is levert eScience ook enorm veel inspiratie op voor nieuw en innovatief informaticaonderzoek. Daarnaast is voor mij is een belangrijk aspect van eScience het hebben van impact met dat informaticaonderzoek. Dan gaat het niet alleen om impact in de wetenschap, maar ook maatschappelijke impact, bijvoorbeeld in de gezondheidszorg, veiligheid, of juist in het bedrijfsleven. Als je kijkt naar mijn publicatielijst dan zie je dat ook terug. Naast publicaties in de informatica heb ik ook publicaties in de archeologie, flight-safety, massa spectrometrie, signaalverwerking, en radioastronomie. Ongebruikelijk voor een informaticus, maar voor een e-scientist doodnormaal. Je wilt immers impact maken in de disciplines, dus je publiceert ook in die disciplines.

Tegelijkertijd werkt het ook omgekeerd, en kunnen we als e-scientists met kennis van nieuwe technische mogelijkheden wetenschappers in de andere disciplines juist uitdagen om hun onderzoeksvragen aan te scherpen en nog groter te denken. Deze wisselwerking is heel spannend.

1.2    Hokjes-denken & generalisatie versus specialisatie

Wetenschap kenmerkt zich vaak door verregaande specialisatie. Dat geldt zeker ook de informatica. Dat is ook nodig, omdat we steeds voortbouwen op bestaande kennis. Het risico van deze specialisatie is wel dat we te veel in hokjes gaan denken. Binnen de informatica zijn er veel vakgebieden die redelijk onafhankelijk opereren. Naar mijn mening zijn we wat te ver doorgeschoten in het specialiseren, en er is als gevolg daarvan te weinig kruisbestuiving tussen de hokjes.

Het eScience vakgebied gaat juist over het doorbreken van de hokjes, we doen namelijk wat nodig is om de wetenschappelijke vragen in de disciplines op te lossen. Vrijwel altijd is daar expertise uit meerdere hokjes voor nodig. Niet het informaticaonderzoek, maar de onderzoeksvragen uit de wetenschappelijke disciplines zijn leidend.

Het is dus voor een e-scientist van groot belang om een brede technische en discipline-overstijgende blik te hebben. Een soort Uomo universale, een universele wetenschapper dus. De werkelijkheid is uiteraard genuanceerder dan dit. De praktijk wijst uit dat het goed werkt om eScience teams op te zetten, waarin eScience specialisten en generalisten samen werken met informatici en domein experts. Van nature is eScience dus erg gericht op samenwerking in plaats van competitie.

Toch heb je uiteraard ook de competitie van de wetenschappelijke methode nodig om de kwaliteitsslag te maken: eScience papers zijn uiteraard peer-reviewed, en financiering wordt onder andere door het Nederlands eScience centrum en steeds meer ook door andere financiers via zeer competitieve open calls uitgezet. Nederland is internationaal vrij uniek, met een nationaal eScience centrum dat zelf veel eScience projecten financiert en ook uitvoert. Er is veel meer vraag naar eScience dan we op dit moment aankunnen, dus de competitie is groot.

De laatste jaren is er dan ook een trend waar er veel lokale eScience, data science, en ICT support groepen worden opgezet bij de lokale campussen van de universiteiten en onderzoeksinstellingen. Ook aan de Universiteit van Amsterdam is dat actueel. Het is belangrijk voor de efficiëntie en het succes van deze zogenaamde “digital competence centers” om kennis te delen en van elkaar te leren. De technologische en discipline-specifieke uitdagingen zijn te groot voor elk individueel initiatief. Ook op deze schaal draait het dus om samenwerking, en niet om competitie. Naast een brede technische en discipline-overstijgende blik is samenwerkingsgerichtheid is dus ook een belangrijke eigenschap van de e-scientist.

1.3.   De menselijke maat

Veel van mijn onderzoek draait om grootschaligheid. Van wetenschappelijke instrumenten, van computersystemen, en van software. Het is daarom ook interessant om vanuit het eScience perspectief te kijken naar schaal. Niet vanuit het oogpunt van de traditionele technische definities, maar juist vanuit de domeinwetenschapper geredeneerd. Het gaat dus om de menselijke maat.

Een bekend onderzoeksthema van de laatste jaren is “Big Data”. Veel technische definities van wat Big Data nu eigenlijk is noemen een aantal V’s. De bekendste zijn “Volume”, “Velocity”, en “Variety”. De definitie die ik zelf altijd gebruik is een typische eScience definitie die uitgaat van de wetenschapper. En dat is: “data is Big Data als een onderzoeker of een discipline er niet meer mee weet om te gaan”. Dat is voor elke discipline dus expliciet anders. Voor de een gaat dit om vele petabytes (zoals in de radio astronomie en hoge-energie fysica), maar voor de andere is het een gigabyte. Het hangt er helemaal vanaf wat voor soort data het is, hoe complex en heterogeen het is, en vooral ook wat voor gereedschap beschikbaar is om informatie uit de data te destilleren. Het hangt dus voor een groot deel af van de beschikbare software, en niet van de data zelf. Mijn stelling is dus dat Big data gaat over software, en niet om data.

In 2016 heb ik meegewerkt aan een artikel over Big Data in de wetenschap in de Volkskrant. Dat artikel heet dan ook “help de wetenschapper verzuipt”. Er staat dus niet “help, de data explodeert”. Dit geeft goed het eScience perspectief aan: denk vanuit de wetenschapper en de wetenschappelijke discipline, niet vanuit de technologie.

Analoog aan data kun je ook voor software spreken over schaal. Wat is grootschalige software, of een grootschalig softwareproject? Je kunt dit uitdrukken in technische termen, zoals het aantal regels code, of allerlei metrieken over de complexiteit van software. Maar, tijdens de IEEE eScience conferentie, die wij hier in Amsterdam vorige jaar georganiseerd hebben, hoorde ik een aardige definitie, gegeven door Reed Milewicz. Hei zei “Grootschalige software is software waar er niet langer 1 enkele persoon is die weet hoe alles werkt”. Zodra je deze grens overgaat wordt het nog belangrijker om na te denken over softwarekwaliteit, documentatie, en zaken als versie beheer, en testen.

1.3.1. Voorbeeld: analyse van complexe netwerken

Een mooi voorbeeld van de menselijke maat in eScience is het werk van Dafne van Kuppevelt, die promotieonderzoek doet bij het Nederlands eScience centrum. Dafne werkt in verschillende wetenschappelijke disciplines aan de analyse van complexe netwerken. Met professor Gijs van Dijck uit Maastricht werken we aan juridische netwerken van rechtszaken. Het is belangrijk voor het beantwoorden van de juridische onderzoeksvragen om te weten welke rechtszaken welke jurisprudentie citeren, en in welke context. Het mooie is dat Dafne soortgelijke analysetechnieken toepast in haar werk met Frank Takes, dat gaat over de analyse van complexe netwerken tussen de besturen van grote bedrijven. In beide gevallen zijn de netweken in termen van bytes of aantal knopen niet enorm groot, maar wel complex, en het is erg lastig om data uit verschillende bronnen te koppelen, en de interessante verbanden binnen de netwerken te identificeren.

Er zijn veel algoritmen om netwerkanalyse te doen, en recent zijn grootschalige rekenmethodes voor dit soort netwerken ook een actieve onderzoeksrichting. Echter, de stap maken van het resultaat van een algoritme, naar de betekenis hiervan in de discipline is erg lastig, en meestal subjectief.  Er is nog echt een interpretatiestap nodig, waar je vaak gebruikt maakt van visualisatie, en interactieve grafische interfaces, en die ziet u hier. Omdat het subjectief is, is dit interpretatie aspect in de informatica vaak onderbelicht, maar voor eScience juist cruciaal.

1.4.        Big Data, inleiding radio astronomie


Dan een heel ander voorbeeld. Een van de meest inspirerende toepassingen van eScience voor mij persoonlijk zit in de radioastronomie. Ik ben vanaf 2007 bezig met eScience in dit vakgebied. In deze discipline gaat het juist wel om het volume van de data. LOFAR, of de “Low Frequency Array”, de telescoop die u hier ziet, genereert ongeveer 2 terabits aan data per seconde, dat is dezelfde orde van grootte als het internetverkeer dat wordt afgehandeld door de Amsterdam Internet Exchange. Deze datastroom is zo groot, dat het niet mogelijk is om het op te slaan. Daarom is de dataverwerking een real-time systeem: je moet de datastroom bijhouden, anders verlies je gegevens.

LOFAR is een gedistribueerd sensor netwerk. Het instrument bestaat uit ongeveer 100.000 relatief eenvoudige antennes, die samen een virtuele telescoop vormen. Het centrale punt van de telescoop staat in Exloo in Drenthe.

In totaal zijn er 38 Nederlandse antennevelden, en daarnaast ook 19 internationale velden. Dit is dus met recht een grootschalig gedistribueerd systeem. Dat is belangrijk, omdat een grotere afstand tussen de antennevelden betekent dat je hogere resolutie beelden kunt maken. De antennedata wordt deels al verwerkt in het veld, en daarna naar een supercomputer in Groningen gestuurd, waar de verdere dataverwerking plaatsvindt. Alle verwerking, analyse en het vertalen van de radiosignalen in beelden gebeurt in software. Dit type telescoop wordt daarom ook wel een softwaretelescoop genoemd.

Er zit veel informaticaonderzoek en innovatie in deze telescopen. Zo was de supercomputer in Groningen in eerste instantie een IBM Blue Gene. Ik heb, samen met onder andere John Romein bij ASTRON onderzocht of we de dataverwerking ook konden doen met zogenaamde “accelerators”. In dit geval is er uiteindelijk gekozen voor grafische kaarten, ook wel GPUs genoemd. Deze GPUs zijn eigenlijk ontworpen voor computerspellen die tegenwoordig zeer snel fotorealistische beelden moeten genereren, waar veel rekenkracht voor nodig is. Wij “misbruiken” die grote rekenkracht voor de dataverwerking. Deze oplossing inmiddels geïmplementeerd door ASTRON, en deze is sneller, goedkoper, en energiezuiniger. Dit onderzoek stamt al uit 2007, en inmiddels gebruiken we deze GPUs ook in heel veel andere eScience toepassingen.

Het is enorm spannend om te zien hoeveel innovatie er zit in de instrumentatie zelf. Dit is APERTIF, een recente upgrade van de Westerbork telescoop. Hier wordt een “Focal Plane Array” gebruikt in het brandpunt van de schotel. Je kunt dit een beetje vergelijken met de sensor in een modern fototoestel die meerdere megapixels tegelijk vastlegt. Door deze techniek zijn de gevoeligheid en het blikveld van de telescoop enorm vergroot. Je kunt dus sneller de hemel afzoeken. Een van de astronomen die APERTIF ontworpen heeft en ook gebruikt voor zijn onderzoek naar pulsars en fast radio bursts is Joeri van Leeuwen. Samen met hem hebben we gekeken naar de grootschalige dataverwerking. Het bleek noodzakelijk om de volledige software pipeline compleet opnieuw te ontwerpen om zeer efficiënt op GPUs te draaien. Een voormalig PhD student van mij, Alessio Sclocco, heeft hier een grote bijdrage aan geleverd tijdens en na zijn promotieonderzoek.

LOFAR en APERTIF zijn gebouwd door ASTRON, het Nederlands instituut voor radioastronomie, en ik denk dat we enorm trots kunnen zijn dat wij deze instrumenten van absolute wereldklasse in Nederland kunnen ontwerpen, bouwen en exploiteren.

De volgende generatie telescoop die momenteel ontworpen en gebouwd wordt is de SKA, of “Square Kilometre Array”, een combinatie van schotels en verschillende antennes. Nederland is een belangrijke partner in dit project. SKA is een gedistribueerd sensor netwerk op enorme schaal, want de antennes staan hier zelfs op twee continenten, namelijk in Zuid Afrika en West Australië. De SKA is een echt exascale instrument. Exascale slaat op de grootte van de datastroom.  SKA gaat exabytes aan data genereren. In totaal is dat, per seconde, meer data dan het totale, wereldwijde internetverkeer bij elkaar. Exascale betekent ook dat er 10 tot de 18e berekeningen per seconde nodig zijn om deze data te verwerken.

Door de dataexplosie moet een nog groter deel van de dataverwerking in real-time op streaming data gaan werken, terwijl dat vroeger achteraf gebeurde. Met Thijs van den Berg doen we onderzoek naar wat ervoor nodig is om dit te bewerkstelligen. Soms lukt het met verbeteringen van klassieke algoritmiek, soms moeten nieuwe algoritmes ontworpen worden, en soms moeten klassieke algoritmes vervangen we door een benadering, bijvoorbeeld door het gebruik van deep learning. Hier kom ik straks nog op terug.

1.5.            Ontwerp van SKA

Chris Broekema, een onderzoeker bij ASTRON die ik samen met Henri Bal van de VU begeleid in zijn promotietraject, heeft onderzocht hoe je het platform voor de dataverwerking van de SKA kunt ontwerpen. Het is essentieel om te onderzoeken welke berekeningen je op welke plek doet, met zo min mogelijk data verplaatsing, en zo min mogelijk energieverbruik. Welke hardware platformen selecteer je, en hoe kom je tot die keuze? Met Chris hebben we onderzocht of we moderne programmeerbare netwerken kunnen gebruiken, waar er dus echt intelligentie in het netwerk zelf zit.

Een van de conclusies is dat je rekenen en datatransport niet afzonderlijk moet zien, maar juist het instrument, de netwerken voor het datatransport, en het data-analyse platform inclusief de software stack integraal moet bekijken. Dit noemen we ook wel co-design. Door de co-design methode, en door het platform geheel programmeerbaar te maken in software, nu inclusief het netwerk dus, kunnen we de telescoop efficiënter en flexibeler maken. Co-design blijkt ook in de literatuur inmiddels een belangrijk thema te worden voor onderzoek naar exascale toepassingen.

2.      Grootschalig efficiënt rekenen

Deze afbeelding laat op een heel hoog niveau de thema’s van mijn onderzoek zien. Mijn leerstoel heeft de titel “Efficient Computing for eScience”. Wat eScience precies is heb ik in het voorafgaande behandeld. Nu wil ik dieper ingaan op het tweede deel: Efficiënt computing, oftewel efficiënt rekenen. Efficiënt rekenen heeft drie verschillende aspecten. Efficiëntie op grootschalige systemen, de schaalbaarheid dus; energie efficiëntie, en de efficiëntie van het programmeerproces zelf. Op elk van deze punten zal ik nu dieper ingaan.

2.1      Architecturen & hiërarchische systemen

Maar voor we het kunnen hebben over efficiëntie moeten we eerst kijken naar de structuur van de computersystemen we willen gebruiken.

2.1.1 Exascale

Deze grafiek laat de snelheid van computersystemen over de tijd zien. De verticale as is het aantal rekenoperaties per seconde, de horizontale as is de tijd. De blauwe rechte lijn geeft de snelheid van de snelste supercomputer ter wereld op dat moment aan. Let op: de verticale schaal is logaritmisch. Elke verticale stap is een factor 1000 sneller. De groei is dus exponentieel. In 1 plaatje ziet u hier een normale processor (gigascale), een GPU (terascale), en de snelste supercomputers ter wereld (petascale).

Onze nationale supercomputer die bij SURFsara staat, de Cartesius, kan ongeveer 2 peta operaties per seconde leveren (2 peta-ops). Op dit moment staat het snelste systeem ter wereld bij het Oak Ridge National Lab in de Verenigde Staten, en dit systeem levert 200 peta-ops, ongeveer 100x sneller dan de Nederlandse Cartesius. Men verwacht rond 2021 de eerste exascale systemen in Amerika en China. In Europa verwachten we rond 2023 twee exascale systemen te bouwen.

In het Europese project PROCESS, waar zowel het Nederlands eScience centrum als de UvA partner zijn, ontwikkelen wij nieuwe software infrastructuur die het mogelijk maakt om dit soort grootschalige systemen efficiënt te gebruiken.

2.1.2. Hiërarchische systemen

Een mobiele telefoon heeft tegenwoordig al 8 cores of rekenkernen. Moderne high-end PCs hebben er al 16 of meer. Ik noemde eerder al dat wij veel rekenen op grafische kaarten of GPUs.  Die GPUs maken gebruik van massief parallelisme, en hebben soms al meer dan 5000 cores, in 1 chip. De structuur van een GPU is niet plat, maar hiërarchisch. Een GPU chip is opgebouwd uit een aantal streaming multiprocessors. Elk daarvan heeft weer een groot aantal cores. Je moet hier als programmeur rekening mee houden: cores binnen streaming multiprocessor kunnen met elkaar communiceren, cores die in verschillende streaming multiprocessors zitten niet. Er is dus een interne hiërarchische structuur die bepalend is voor hoe je zo’n apparaat programmeert.

In een compute node zitten over het algemeen zowel een snelle general-purpose processor, en een aantal GPUs. Er zijn nu twee dingen gebeurd. Het systeem is nu heterogeen geworden, er zijn twee verschillende processorarchitecturen, en er is nog een niveau van parallelisme toegevoegd. Meerdere GPUs kunnen in parallel rekenen.

Een supercomputer bestaat uit een groot aantal van deze compute nodes, verbonden door een snel netwerk. Hier ziet u de Cartesius, de nationale supercomputer die bij SURFsara staat, en die op deze manier is opgebouwd.

In sommige gevallen gebruiken de grootschalige wetenschappelijke applicaties waarin ik geïnteresseerd ben zelfs meerdere supercomputers die verbonden zijn door snelle glasvezelverbindingen tegelijk. Voorbeelden zijn de SKA-telescoop, of gekoppelde simulatiecodes, bijvoorbeeld voor klimaatonderzoek.

De rekeneenheden in exascale systemen zitten dus in een hiërarchische structuur. Hetzelfde punt kun je ook maken voor geheugen, communicatie en parallelisme. Ik verwacht dat dit in de toekomst ook meer en meer zal gaan gelden voor dataopslag. Dat is samengevat in deze tabel. Van links naar rechts wordt het systeem steeds grootschaliger. U hoeft alle technische termen niet te lezen of te begrijpen, het gaat erom dat je enorm veel verschillende technologieën moet kunnen gebruiken en combineren om efficiënt te zijn.

Dus wat gebeurt er nu eigenlijk als we richting exascale systemen gaan?

Ten eerste: systemen worden extreem parallel en hiërarchisch.

Ten tweede: Systemen worden heterogeen, er zijn steeds meer accelerators zoals GPUs voor snel rekenen, speciale processoren voor deep learning, en FPGAs als meer flexibiliteit nodig is.

Het derde punt is dat er fouten optreden. Deze systemen zijn enorm complex en grootschalig. Als je kijkt naar de “mean time between failures” van componenten, dan kun je uitrekenen dat er altijd wel iets kapot is in het systeem. Je moet dus inherent rekening houden met fouten.

Het laatste punt is dat er veel meer flexibiliteit nodig is, door de heterogeniteit, door het gebruik van clouds en virtualisatie waarbij je de hardware vaak niet voor jezelf hebt, en door de fouten die onverwacht optreden.

Al deze complexiteit bemoeilijkt de programmeerbaarheid enorm.

2.2      Parallel rekenen en heterogeniteit

Ik onderzoek programmeermethodes die zelf inherent hiërarchisch zijn. Het is mogelijk om met de hand hiërarchische optimalisaties te introduceren op applicatieniveau, in communicatiebibliotheken zoals MPI, of in hoog niveau programmeermodellen. Het bekendste voorbeeld van een inherent hiërarchisch model is divide-and-conquer.

Bij divide-and-conquer splits je een probleem op in een aantal deelproblemen. Vervolgens splits je elk deelprobleem weer verder op. Dit blijf je recursief doen tot je een heel klein probleem overhoudt, dat eenvoudig in korte tijd op 1 processor op te lossen is.

Vervolgens worden alle deelresultaten weer stapsgewijs gecombineerd totdat het totale probleem opgelost is. Dit model volgt een boomstructuur, en is dus inherent hiërarchisch. Mijn visie is dat zo’n hiërarchisch programmeermodel goed af te beelden is op hiërarchische systemen. Ons onderzoek laat ook zien dat dit inderdaad het geval is.

Met het Cilk project, uitgevoerd bij het Amerikaanse MIT, heeft men aangetoond dat divide-and-conquer toepassingen zeer efficiënt kunnen draaien op kleinschalige shared memory systemen. Tijdens mijn promotieonderzoek heb ik een opvolger van dit Cilk systeem gemaakt: Satin. Satin draait divide-and-conquer toepassingen efficiënt op grootschalige systemen met duizenden cores zelfs wanneer die verspreid zijn over verschillende continenten. Hiervoor moesten we nieuwe slimme algoritmes ontwerpen voor de werkverdeling. Met Gosia Wrzesinska, Jason Maassen en Niels Drost hebben we ervoor gezorgd dat ons model ook foutbestendig is. Zowel de algoritmes voor de werkverdeling als de foutbestendigheid blijken we heel efficiënt te kunnen implementeren door handig gebruik te maken van de hiërarchische structuren van het programmeermodel en het computersysteem.

Pieter Hijma heeft Satin vervolgens uitgebreid met een nieuwe programmeermethode om accelerators te programmeren. Het resulterende systeem heet Cashmere. Het eindresultaat is dus dat we grootschalige wetenschappelijke applicaties kunnen draaien op wereldwijde hiërarchische en heterogene systemen, zelfs als er fouten in het systeem optreden. De programmeur merkt vrijwel niets van al deze complexiteit.

Er doen dus al drie generaties van promovendi onderzoek met dit systeem. Een van de redenen dat we over een lange tijd zo succesvol zijn geweest met dit platform is dat we expliciet goed na hebben gedacht over het ontwerp, alles zeer modulair hebben opgezet, en dat we continu investeren in de softwarekwaliteit.

2.2.1. Nu: compute en data

In parallel programmeren onderzoek werken we vaak met benchmarks en vereenvoudigde applicaties om onze hypotheses en systemen te testen. Dit werkt heel erg goed voor rekenintensieve applicaties. Helaas gaat dit in de praktijk soms verkeerd bij echte wetenschappelijke applicaties, die over het algemeen juist erg data intensief zijn. Data verplaatsen is duur en gebruikt ook nog eens erg veel energie. Je moet dataopslag en transport dus meenemen in het ontwerp van algoritmes en systemen. Het hokjes denken waar ik het in het begin over had, en onze informatica-centrische blik, waar we de applicaties te veel vereenvoudigd hebben om te kunnen redeneren over het systeem, leidt dus soms tot blinde vlekken.

In het Europese project “PROCESS” werken we met Stijn Heldens aan modellen die wel hiërarchisch zijn, en wel uitgaan van divide-and-conquer, maar die opslag en data lokaliteit wel mee nemen. Het verschil is dat we niet de taken opsplitsen in stukken, maar juist de data. Het systeem kan dan automatische afwegingen maken of het de data verplaatst naar plekken waar rekenkracht beschikbaar is, of juist andersom. In dat geval laat het systeem de data juist staan, en brengt het de berekeningen naar de data. Ons onderzoek moet uitwijzen welke aanpak in welk geval efficiënter is.

2.3 Energie efficiëntie

Het volgende aspect van efficiënt rekenen dat ik onderzoek is de energie efficiëntie. Voor grootschalige instrumenten en simulatiecodes is het energieverbruik inmiddels een belangrijke beperkende factor. De afgelopen jaren heb ik onder andere met Alessio Sclocco en John Romein onderzoek gedaan naar de energie efficiëntie van radioastronomie pipelines. Het gaat er dan om dat je zoveel mogelijk operaties per Joule kunt uitvoeren.

Een van de technieken de we gebruiken is een combinatie van run-time code generatie en auto-tuning. Met run-time code generatie genereren we de code pas vlak voordat we deze gaan uitvoeren. Op dat moment zijn veel parameters bekend. Deze parameters kunnen eigenschappen van het platform zijn, zoals het aantal streaming multiprocessors en cores. Maar nog interessanter zijn applicatie-specifieke parameters, zoals in ons geval bijvoorbeeld het frequentiebereik van de observatie, of het aantal antennevelden dat mee doet. Als je dat weet, dan weet je precies hoe je moet parallelliseren, en hoe je de data in het geheugen kunt ordenen voor de meest efficiënte toegang. Je kunt dus een enorm goede afbeelding maken van het specifieke probleem dat je wilt oplossen naar de exacte hardware waar je op dat moment op draait.

Met auto-tuning genereren we niet 1 versie van de code, maar vele duizenden versies, met andere optimalisatieparameters. Het systeem zoekt dan automatisch de meest efficiënte set van parameters. Een voorbeeldresultaat ziet u hier. We hebben een radioastronomie pipeline ontwikkeld die zoekt naar pulsars: zeer snel roterende neutronensterren. In dit geval vergelijken we 3 verschillende accelerators, en ook 3 verschillende telescopen, hier LOFAR, Apertif en SKA fase 1. We kijken specifiek naar het energieverbruik. Wat we zien is dat telescoopeigenschappen zoals het frequentiebereik een grote impact hebben op de snelheid en ook de energie efficiëntie. We halen op GPUs versnellingen tot een factor 8, terwijl we tegelijkertijd 6x minder energie verbruiken ten opzichte van een traditionele processor. Er zijn voor verschillende hardware platformen, verschillende telescopen en verschillende observaties echt verschillende optimalisaties nodig. Met de hand is dat niet meer te doen.

Het voordeel van onze automatische aanpak met run-time code generatie en auto-tuning is dus een zeer goede portabiliteit en performance, met een laag energieverbruik. Er is echter ook een nadeel. Door de geautomatiseerde zoektocht naar het optimum heb je geen inzicht meer in de reden waarom je een bepaalde performance haalt. Dat is op dit moment een van de thema’s van ons vervolgonderzoek.

Als we onze benchmark resultaten extrapoleren naar wat er nodig is voor de SKA, dan blijkt dat er in totaal voor fase 1 al 140.000 GPUs nodig zijn, met een energieverbruik van 30 megaWatt. De ambitie voor SKA fase 2 is om het systeem nog met een factor 100 op te schalen. Dan heb je dus 3000 megaWatt nodig. De grootste kolencentrale van Nederland, de Eemshavencentrale, levert ongeveer 1500 MW. Dus, om SKA fase 2 te bouwen met de technologie die we hier getest hebben zijn er 2 van die centrales nodig, alleen maar voor de pulsar pipeline. Dit geeft wel de enorme schaal en ambitie aan die men nastreeft. Er is overduidelijk nog veel onderzoek nodig om deze droom waar te maken.

2.4.   Schaalbaarheid

Het laatste aspect van efficiënt rekenen waar ik het over wil hebben is schaalbaarheid. Nu speelt schaalbaarheid al een grote rol in alles wat ik tot nu toe verteld heb. Daarom wil ik nu alleen nog ingaan op een specifiek aspect dat erg actueel is: het opschalen van zelflerende systemen, en in het bijzonder deep learning, een heel actueel onderzoeksthema.

2.4.1. Deep learning op schaal

We zijn met dit thema bezig in een groot project, EDL, dat staat voor “Efficient Deep learning”. In dit project zitten naast 11 academische partners ook 36 partners uit de industrie, die spannende uitdagende use cases aanleveren. EDL is een prachtig voorbeeld van het type interdisciplinaire onderzoek dat ik nastreef. Het doorbreekt een aantal hokjes binnen de informatica, het brengt namelijk de Nederlandse experts op het gebied van grootschalig rekenen en de experts op het gebied van kunstmatige intelligentie samen. Het project slaat ook een brug tussen wetenschap en industrie, met ook expliciet het doel om deep learning toegankelijk te maken voor een veel bredere groep gebruikers, inclusief bijvoorbeeld het MKB. Een mooie kans dus om impact te hebben met eScience.

Ik ben zelf projectleider van een deelproject dat “deep learning voor High-Tech Systems and Materials” heet. Wellicht herkent u dit als een van de topsectoren. We gaan drie use-cases aanpakken die draaien om het opschalen van industriële productieprocessen en instrumenten. Met Tata steel en Qualcomm kijken we naar het opsporen van defecten tijdens het fabricageproces van staal. Met Thermo Fischer onderzoeken we of we de acquisitiesnelheid van elektronenmicroscopen kunnen verhogen, terwijl we tegelijkertijd de beeldkwaliteit verbeteren. Tenslotte kijken we met Astron, het eScience centrum en SURFsara naar het detecteren van instrumentfouten voor LOFAR.

Er zijn een aantal gemeenschappelijke uitdagingen bij deze use cases. We onderzoeken het opschalen van deep learning zodat we kunnen omgaan met de enorme datavolumes die we hebben. De data is in ons geval ook heterogeen: we combineren verschillende soorten data met verschillende eigenschappen uit verschillende bronnen.

2.4.2. EDL ASTRON use case

Ik wil even inzoomen op de LOFAR use case, waar we deep learning gebruiken als instrument babysitter. Zoals ik al eerder vertelde zijn er bij instrumenten en computersystemen op deze schaal eigenlijk permanent dingen kapot. Ook externe stoorzenders, in dit geval zelfs letterlijk, kunnen de data vervuilen. Onze ambitie is om dit automatisch te detecteren met deep learning. Om dit mogelijk te maken willen we het algoritme de observatie data zelf geven, maar ook domeinkennis in de vorm van meta data over de observatie, informatie over de status van de sensoren, het netwerk, het computerplatform en de software. Door al de informatie met elkaar te combineren en te correleren hopen we automatisch verbanden te kunnen leggen tussen anomalieën in de data en de “gezondheid” van het instrument. De bevindingen presenteren we dan aan de operators, die met een interactieve interface verder kunnen onderzoeken wat er mis is. De operators kunnen het systeem tegelijkertijd helpen met het leren, zodat de foutoorzaak een volgende keer automatisch gedetecteerd kan worden. Deze interface is gemaakt door Christiaan Meijer van het eScience centrum, en het vervolgonderzoek waar we die domeinkennis mee nemen wordt nu gedaan door Misha Mesarcik.

2.4.2. EDL ING use case

Typisch voor eScience is dat we altijd willen generaliseren. Dat doen we in dit geval ook weer. We proberen dezelfde technologie te verfijnen met een andere use case in een heel andere context, namelijk financiële transacties. Dit EDL deelproject is gemeenschappelijk met de VU en de ING bank, en Henk Dreuning is de PhD student die het onderzoek uitvoert. Ook bij de bank zijn de ICT systemen enorm grootschalig en complex. We willen dezelfde deep learning technologie gebruiken om fouten in het ICT systeem te detecteren. Tegelijkertijd willen we het systeem gebruiken op de stromen van financiële transacties. In dit geval kunnen anomalieën een indicator zijn van mogelijke fraude. Een mooi voorbeeld van maatschappelijke impact met eScience.

2.5. Het eScience proces

Dit maakt de cirkel van mijn verhaal rond. Dit plaatje laat zien hoe het eScience proces in het algemeen werkt. We ontwikkelen nieuwe kennis en software in onze interdisciplinaire projecten (rechts). Een belangrijk aspect van eScience is het hergebruik van de gegenereerde kennis en software. We maken dus een generalisatieslag, waar we de software zo modulair en generiek mogelijk maken, zodat we ook snel nieuwe onderzoeksvragen kunnen beantwoorden, potentieel in andere disciplines (onder). We ontwikkelen open source software, en delen dit met de community. We hergebruiken ook veel bestaande research software. Juist door geen wielen opnieuw uit te vinden en veelgebruikte bestaande software uit te breiden met nieuwe algoritmes die uit ons onderzoek komen, kunnen we een grotere impact realiseren (adoptie, links).

Onze gegeneraliseerde methodes en software passen we altijd weer aan in volgende projecten om goed aan te sluiten bij de domeinwetenschappers met wie we werken. Vaak doen we dat meerdere keren, in verschillende projecten en disciplines (boven). Maatwerk is van groot belang voor acceptatie en impact in het domein. Beide stappen in de cirkel zijn even belangrijk: in de specialisatie stap beantwoorden we de wetenschappelijke vragen, en bevorderen we de acceptatie en impact; bij de generalisatie maken we de kwaliteits- en efficiency slag. Kortom, wetenschap is specialiseren, en wij als e-scientists zijn gespecialiseerd in het generaliseren en specialiseren. Deze cirkel dus. Dankzij het hergebruik en de hoge kwaliteit van de research software levert eScience meer en betere wetenschap op per geïnvesteerde euro.

3.    Software-kwaliteit en de impact op de wetenschap

Dan wil ik graag nog 1 laatste punt bespreken.

Buurman en buurman zijn de hoofdpersonen in een van oorsprong Tsjechische tekenfilmserie. In elke aflevering zijn de buurmannen aan het klussen, maar dit gaat altijd op een grappige manier helemaal mis. Vrijwel altijd is de klus aan het einde van een aflevering geklaard, alleen niet op de manier die ze bedacht hadden, er gaat onderweg heel veel fout, en het is enorm inefficiënt. Eigenlijk schrijven wij in de wetenschap software op dezelfde ongestructureerde manier.

In de informatica is software ons instrument. Om goede wetenschap te doen heb je goede instrumenten nodig. Een astronoom maakt geen telescoop van kippengaas en duct-tape. Ze bouwen kwalitatief uitstekende instrumenten, en Nederland doet op deze manier mee aan de wereldtop van het astronomie onderzoek. Deze instrumenten gaan dan ook decennia mee. Ik zou graag zien dat wij in de informatica hetzelfde gaan doen. Er is een cultuurverandering nodig om te zorgen dat onze instrumentatie van hogere kwaliteit en beter herbruikbaar wordt. Op de lange termijn is dit efficiënter, en genereert het ook meer impact. In mijn optiek is herbruikbare software ook een voorwaarde van de wetenschappelijke methode: onderzoek moet verifieerbaar en reproduceerbaar zijn. Dat is in de informatica maar al te vaak niet het geval.

Ik worstel zelf ook met dit probleem. Vroeger al als AIO en postdoc, toen ik nog zelf veel software schreef, maar ook met mijn promovendi nu. Er is eigenlijk geen tijd om degelijke software te bouwen. De enige oplossing is om expliciet waardering te geven voor het ontwikkelen van software instrumentatie. Wetenschappers moeten software dus gaan zien als een belangrijke onderzoeksbijdrage. We kunnen hier allemaal eenvoudig aan bijdragen: citeer de software die je gebruikt. En softwareontwikkelaars: maak releases, en zorg ervoor dat jouw code vindbaar en citeerbaar is. En, het belangrijkste: wees trots op jouw instrument!

4.    Dankwoord

Ik wil graag eindigen met het bedanken van de vele mensen die de afgelopen jaren essentieel zijn geweest voor dit werk.

Allereerst wil ik degenen danken die mijn aanstelling mogelijk hebben gemaakt. Dat waren het college van bestuur, de decaan, de directeur van het Instituut voor Informatica, de bestuursleden van de stichting Nederlands eScience centrum, de leden van het curatorium, en vooral ook professor Cees de Laat en professor Wilco Hazeleger. Bedankt voor deze kans en het vertrouwen.

Dan moet ik natuurlijk beginnen met het bedanken van mijn promovendi. Zij doen al het echte werk. Als u goed heeft opgelet heeft u ze allemaal al langs zien komen, maar hier ziet u ze nogmaals. Graag wil ik ook iedereen bedanken die betrokken is bij de begeleiding van de promovendi. Wat een voorrecht om met jullie allemaal te mogen werken.

Er zijn ook veel mensen met wie ik al heel lang en fijn samenwerk. Te veel om hier nu op te noemen helaas. Ik bedank u daarom graag straks even persoonlijk onder het genot van een drankje tijdens de receptie. Ik wil nu alleen even kort iedereen bedanken van het Systems and Networking Lab van de UvA. Ook dank ook aan iedereen bij het Nederlands eScience centrum. Ook de mensen die inmiddels weg zijn, maar die wel belangrijk zijn geweest. Een bedankje ook voor de support staf van het eScience centrum en van de UVA. And then a special thanks for our eScience research engineers. You are the unsung heroes of science! I am very proud of everything we have accomplished together at the eScience center sofar.
Ook veel dank aan SURF en NWO die dit hebben mogelijk gemaakt.

Bedankt ook iedereen van de computersystemen groep van de VU, iedereen bij Astron, en iedereen in de projecten waar ik in de afgelopen jaren bij betrokken ben geweest: onder andere Ibis, GridLab, AstroStream, PROCESS en EDL, en natuurlijk een groot aantal projecten aan het Nederlands eScience centrum. Bedankt voor alle inspiratie!

Dank ook aan mijn co-promotors Aske Plaat en Thilo Kielmann, en promotor Henri Bal. Jullie hebben mijn wetenschappelijke basis gelegd.

Het is ook fijn om altijd terug te kunnen vallen op mijn broer en zus, familie, schoonfamilie en vrienden. Dank jullie wel allemaal.

Dan natuurlijk mijn ouders: Jullie hebben dit uiteindelijk allemaal mogelijk gemaakt door mij altijd alle kansen te geven, en door me te stimuleren om te leren. En, natuurlijk, jullie hebben inmiddels 35 jaar geleden de commodore 64 gekocht, waar dit allemaal mee begonnen is. Dat was nog eens een goede investering! Het is geweldig dat jullie hierbij kunnen zijn, dat is niet bepaald vanzelfsprekend na wat jullie allemaal door hebben gemaakt de afgelopen jaren.

Tenslotte natuurlijk het thuisfront. Patricia, Lucas en Kayleigh, wat zou ik zonder jullie moeten? Bedankt voor jullie steun en liefde.

Ik heb gezegd.

Inaugural lecture

Wednesday May 8 at 16.00, I will give my inaugural lecture. The title is “The e-scientist. Universal scientist or specialist?”. The location is the Aula of the University of Amsterdam. Note that the lecture will be in Dutch. Everyone who is interested in eScience and efficient computing is very welcome! Dutch Summary: Wetenschap wordt steeds … Continue reading “Inaugural lecture”

Wednesday May 8 at 16.00, I will give my inaugural lecture. The title is “The e-scientist. Universal scientist or specialist?”. The location is the Aula of the University of Amsterdam. Note that the lecture will be in Dutch. Everyone who is interested in eScience and efficient computing is very welcome!

Dutch Summary:

Wetenschap wordt steeds complexer en heeft meer en complexere ICT nodig. Het toepassen en onderzoeken van innovatieve complexe ICT in de wetenschappelijke disciplines noemen we eScience. Een echt kenmerk van eScience is dat het onderzoek plaatsvindt in nauwe samenwerkingsverbanden tussen informatici en wetenschappers in de disciplines. EScience bestrijkt alle wetenschapsgebieden, van archeologie tot levenswetenschappen en de astronomie. Ook technisch is eScience enorm breed. Afhankelijk van de wetenschappelijke vraag en het vakgebied kan het gaan om grootschalige simulaties, het koppelen van modellen, het integreren van observaties en modellen, het koppelen van verschillende databronnen, het zoeken in ongestructureerde data, visualisatie, machine learning en nog veel meer.

Het is enorm spannend en uitdagend om state-of-the-art informaticaonderzoek toe te passen om lastige wetenschappelijke problemen aan te pakken. Ook levert eScience een enorm veel inspiratie op voor nieuw en innovatief informaticaonderzoek. Een belangrijk aspect van eScience is het vergroten van impact van informaticaonderzoek. Dan gaat het niet alleen om impact in de wetenschap, maar ook maatschappelijke impact, bijvoorbeeld in de gezondheidszorg, of juist in industriële fabricageprocessen. Tegelijkertijd werkt het ook omgekeerd, en kunnen we als e-scientists met kennis van nieuwe technische mogelijkheden wetenschappers juist uitdagen om hun onderzoeksvragen aan te scherpen en nog groter te denken.

Rob’s leerstoel heeft de titel “Efficient Computing for eScience”. Efficiënt rekenen heeft drie verschillende aspecten. Efficiëntie op grootschalige systemen, de schaalbaarheid dus; energie efficiëntie, en de efficiëntie van het programmeerproces zelf. Zijn onderzoek behandeld elk van deze thema’s, in verschillende toepassingsgebieden, met een focus op grootschalige gedistribueerde radio telescopen, zoals LOFAR en de Square Kilometre Array (SKA).

Oratie: The e-scientist. Universal scientist or specialist?
Locatie: Aula UvA
Spui, 1071 DN Amsterdam

[FILLED] Vacancy: PhD candidate in Efficient Deep Learning

Faculty of Science – Informatics Institute The Informatics Institute of the Faculty of Science invites applications for a PhD candidate in Efficient Deep Learning for four years. The position is part of the Dutch STW Efficient Deep Learning program. Project description The Efficient Deep Learning (EDL) program The EDL program combines the fields of machine learning and computing: both disciplines … Continue reading “[FILLED] Vacancy: PhD candidate in Efficient Deep Learning”

Faculty of Science – Informatics Institute

The Informatics Institute of the Faculty of Science invites applications for a PhD candidate in Efficient Deep Learning for four years. The position is part of the Dutch STW Efficient Deep Learning program.

Project description

The Efficient Deep Learning (EDL) program

The EDL program combines the fields of machine learning and computing: both disciplines are already strong in the Netherlands and now connected by seven Dutch academic institutes and more than 35 other (industrial) partners in- and outside the Netherlands. The EDL program contains seven use case driven EDL research projects: P1) DL as a service, P2) Reconstruction, matching and recognition, P3) Video analyses and surveillance, P4) High tech systems and materials, P5) Human and animal health, P6) Mobile robotics, and P7) DL platforms. The common goal for all seven EDL projects is to significantly improve the applicability of DL among others by creating data efficient training, and tremendously improving computational efficiency, both for training and inference.

Partners in EDL-P4 are the Dutch universities TU/e, UvA and VU, and also Thermo Fischer, Qualcomm (Scyfer), the Netherlands eScience center, ASTRON and SURFsara.

The PhD position

The candidate will work on DL for extreme-scale system health management. In modern radio telescopes, System Health Management (SHM) is crucial for detection and remedying of errors. Scale and complexity of the systems involved are increasing: we must deal with ~100K distributed sensors, huge data volumes and real-time compute requirements (petascale to exascale). The effectiveness and efficiency of current SHM approaches are limited in this context. We will develop semi-supervised and active learning SHM approaches that perform data fusion to combine sensor time series data with system health data (network, HDD, memory, software, logs), deal with the lack of labelled data, and unbalanced and changing labels. This is beneficial for maintenance, operations, and costs, but also crucial for the scientific results, as accurate knowledge of the instruments is essential for calibration.

Although we focus concretely on application of this technology in radio astronomy, similar problems arise in high-energy physics, ecology, life sciences and urban planning (e.g., LHC, Xenon3T, KM3Net). Similar problems occur in large-scale distributed simulations, e.g. in water management, computational chemistry and climate science. Therefore, we will develop generic methods and software.

The candidate will work on the development of energy and resource efficient DL algorithms. She or he will work on implementations to accelerate DL by programmable hardware (e.g. GPUs).


  • conduct interdisciplinary research with a special focus on the design and implementation of novel scalable DL algorithms that deal with extremely large, heterogeneous and sparse data in real time;
  • investigate novel architectures for real-time efficiency and power efficiency at exascale;
  • implement and validate DL-based SHM in radio telescopes;
  • publish in top tier conferences and journals in relevant areas;
  • provide teaching assistance (10%);
  • complete a PhD thesis.

The PhD candidate will work at the Systems and Networking lab of the Informatics Institute at the University of Amsterdam and at ASTRON (Dwingeloo). Regular travelling between the two sites is expected.


We are looking for candidates whose skills match with (a large part of) the following profile:

  • an MSc in Computer Science, AI or related disciplines with excellent grades;
  • demonstratable experience with High-Performance Computing (parallel programming, networking, GPUs);
  • affinity with Signal Processing, Machine Learning (ideally deep learning), and a good mathematical background are important;
  • excellent programming skills (in C, C++, Python);
  • a team player who enjoys a multicultural and interdisciplinary environment in which academic-industrial collaboration is central;
  • good communication and organization skills;
  • excellent English language skills (writing and presenting).

Further information

For further information about this vacancy you can contact:


The appointment will be full-time (38 hours a week) for a period of four years (initial employment is 18 months). Periodic evaluations will be held after 9 and 14 months. Upon positive evaluation, the appointment will be extended to a total of 48 months. The appointment must lead to a dissertation (PhD thesis). An educational plan that includes attendance of courses, summer and/or winter schools, and national and international meetings will be drafted for the PhD candidate. The PhD candidate is also expected to assist in teaching of undergraduate students.

The salary is in accordance with the university regulations for academic personnel. The salary will range from €2,266 (first year) up to a maximum of €2,897 (last year) gross per month (scale P) based on a full-time appointment. There are also secondary benefits, such as 8% holiday allowance per year and the end of year allowance of 8.3%. The Collective Labour Agreement for Dutch Universities is applicable.

Among other things, we offer:

  • competitive pay and excellent benefits;
  • extremely friendly working environment;
  • high-level of interaction;
  • international environment (10+ nationalities in the group);
  • access to high-end computing facilities (cluster with 4,000+ cores);
  • one of the best AI ecosystems on the planet;
  • new building located near the city center (10 minutes by bicycle) of one of Europe’s most beautiful and lively cities;
  • access to one of the largest radio telescopes in the world (LOFAR) in a beautiful environment (a national park).

Since Amsterdam is a very international city where almost everybody speaks and understands English, candidates need not be afraid of the language barrier.

Job application

The UvA is an equal opportunity employer. We celebrate diversity and are committed to creating an inclusive environment for all employees. We value a spirit of enquiry and endurance, provide the space to keep asking questions and cherish a diverse atmosphere of curiosity and creativity.

You may only submit your application online using the link below. We will accept applications until 21 August 2018. To process your application immediately, please quote the vacancy number 18-453.

The committee does not guarantee that late or incomplete applications will be considered.

In the research statement (see below) you should clearly describe your research vision in relation to the topics that we described, as well as a clear statement which would be your direction of research.

You should also include the following information, in separate PDF files (not zipped), using surname, initials and a self-evident word as file names, e.g., Smith J CV:

  • a curriculum vitae (including a URL allowing download of pdf of MSc. thesis – if relevant);
  • a letter of motivation (at most 1 page) explaining why you are interested in this position;
  • a research statement (at most 2 pages), explaining your research interests and how you think they can be related to the topics mentioned in the Job description above;
  • a list of all university courses taken, including a transcript of grades;
  • the name and contact details (including email address) of three referees who can provide details about your profile (one of whom should be the main supervisor of your Master thesis).

No agencies please

apply here!


[FILLED] Vacancy for a PhD in reliable exascale computing

The Netherlands eScience Center has a vacant PhD position on “reliable exascale computing” The Netherlands eScience Center supports and reinforces multidisciplinary, data and computational intensive research through creative and innovative use of digital technologies in all its manifestations. We stimulate enhanced Science (eScience) by focusing on collaboration with universities, research institutions and industry. We aim … Continue reading “[FILLED] Vacancy for a PhD in reliable exascale computing”

The Netherlands eScience Center has a vacant PhD position on
“reliable exascale computing”

The Netherlands eScience Center supports and reinforces multidisciplinary, data and computational intensive research through creative and innovative use of digital technologies in all its manifestations. We stimulate enhanced Science (eScience) by focusing on collaboration with universities, research institutions and industry. We aim to change scientific practice by making large-scale big data analysis and computation possible across multiple scientific disciplines in order to achieve scientific breakthroughs. In this way, we create an effective bridge between scientific research and state-of-the-art digital technologies.

We are looking for an enthusiastic:

PhD student

The position:

The candidate will work in the European funded project PROCESS. The goal is to narrow the gap between user communities and digital infrastructure. The research is driven by 5 concrete scientific and industrial use-cases ranging from astronomy to medical imaging and Big Data analysis for airlines. The PhD candidate will work on defining and developing reliable and scalable techniques for exascale computing.

The candidate is expected to publish his/her results in peer reviewed conferences and journals, which will form the basis of a PhD thesis to be obtained from the University of Amsterdam (promotor Rob van Nieuwpoort, co-promotor Jason Maassen). The candidate will be based at the Netherlands eScience Center in Amsterdam, but is expected to work at least one day a week at the University of Amsterdam.

We require:

  • Academic level;
  • Finished master degree in computer science or equivalent study;
  • Prior expertise in one or more of the following fields: high-performance computing, parallel and distributed programming, Big Data, scientific data processing;
  • Strong programming skills in C, C++, Java, Python;
  • Fluency in oral and written English is required as well as good presentation skills;
  • Capable of working in an interdisciplinary team of researchers and industrial partners.

Working conditions:

We offer a temporary position at the eScience Center for a fixed period of 4 years within the collective agreement for Dutch Research Institutes. The salary is based on the salary scales in the cao-OI, starting at € 2.246,- in the first year and growing to € 2.879,- in the fourth year of employment, with a 38-hour working week. Holiday pay amounts to 8% of gross salary and we also offer a 13th month of salary as an end-of-year payment.


The eScience Center offers an interesting and challenging position with (additional) options for personal development. You will work in an international team with an informal but creative and ambitious working environment. The main location is Amsterdam (Science Park). Due to the international nature of this project, travelling (mostly within Europe) is expected. The eScience Center has an active diversity policy and would like to hire persons with a background that is underrepresented at the eScience Center. We therefore encourage women and minorities to apply. For more information about this opportunity you can contact Rob van Nieuwpoort, director of technology of the Netherlands eScience Center, by emailing, or by calling +31(0)20 460 4770. Please send your resume and application letter at the latest on January 5th 2018 to Additional information may also be found at

First Light! … Again! Shiny new receivers for the Westerbork telescope.

Great news! The new and improved Westerbork telescope in the northeast of the Netherlands has seen first light! If you are into radio astronomy, or if you have visited the second world war nazi camp and monument at Westerbork, you may be familiar with this instrument, which was built in 1970. The telescope is situated … Continue reading “First Light! … Again! Shiny new receivers for the Westerbork telescope.”

Great news! The new and improved Westerbork telescope in the northeast of the Netherlands has seen first light! If you are into radio astronomy, or if you have visited the second world war nazi camp and monument at Westerbork, you may be familiar with this instrument, which was built in 1970. The telescope is situated right next to the former transit camp. During the Second World War, Romani and Dutch Jews were assembled there, for transport to other Nazi concentration camps. The famous Anne Frank (from the diary) was kept here for a while.

A rebuilt barrack at Dutch Nazi camp Westerbork. Anne Frank stayed in this barrack from August till early September 1944, before she was taken to Auschwitz and then Bergen-Belsen. Picture from Wikipedia, courtesy Blacknight.

Today, you can visit the remains of the camp, which now is a monument. From the site, you can see the telescope, or actually telescopes, because the instrument consists of 14 separate dishes, 25 meters in diameter each. The total distance between the dishes is 2.7 kilometers, or 1.7 miles if you insist on using archaic units. The telescope actually is pretty old already. In fact, it is older than I am (I was built in ‘75). Nevertheless, this instrument has helped doing great science, and has led to many remarkable discoveries.

The Westerbork synthesis radio telescope. And typical Dutch weather 🙂 Picture made by me on a day the telescope was open for the public. Normally, cars are not allowed here, because they cause interference.

Of course, technology does not stand still, and modern, more sensitive instruments were developed and built during the four decades (!) that this telescope has been operational. So, the beast was becoming a bit old and grumpy. Not to worry! We are Dutch, and don’t like to waste anything (some say we are cheapskates). So, recently, the receivers that are in the focal points of the dishes were upgraded with brand new ones. Originally, each dish contained only a single sensor, basically producing a single pixel. The new receiver, called APERTIF, actually is an array of sensors, called a Focal Plane Array (FPA). Compare it to a modern sensor in a camera, which produces several megapixels at once. So, this gives us more sensitivity, but especially a much larger window on the sky. We can see more at the same time. This is important if you want to make a survey, searching for objects that you don’t know yet, or which appear suddenly (like supernovae, pulsars, or signals from little green men).

Focal Plane arrays rock! Picture courtesy ASTRON.

So, why am I blogging about this? Well because it is cool, duh! And, because we at the Netherlands eScience Center develop software to process the data generated by this instrument. To be more precise, we are working on ARTS, the APERTIF radio transient system. We will, for instance, observe pulsars: neutron stars that are spinning quickly, emitting a beam like a light house. For some pulsars, the time between pulses is so constant that they are even more precise than an atomic clock! Pulsars are important for many reasons. One of them is that we hope to use them to detect gravitational waves, learning more about how the universe works.
It is a privilege for us to write software that will help make these scientific discoveries happen! At the same time, it is a strange but beautiful thing that a site where so many bad things happened to so many people in the past now is one of the pinnacles of science.