«Ich schätze die Freiheit, auf meine angeborene Neugierde hören zu können.»
In dieser Interviewserie sprechen wir mit drei Personen, die sich für eine akademische Laufbahn in der Informatik entschieden haben und nun als Professor:innen tätig sind. In der dritten Folge spricht Ana Klimovic über die Freiheit, die sie in der akademischen Welt geniesst, über den Wert von engen Interaktionen mit der Industrie für ihre Forschung und darüber, was es braucht, um den Übergang von einem Doktorat zu einer Professur zu schaffen.
Dieses Interview ist der letzte Teil einer dreiteiligen Serie über Personen, die sich nach dem Studium für eine akademische Laufbahn in der Informatik entschieden haben und heute als Professor:innen tätig sind.
Teil 1: «Bei einer Forschungskarriere spielt das Glück immer eine Rolle» (Professor Dennis Hofheinz)
Teil 2: «Wenn man das bewältigt, kann einen nichts aufhalten»(Professorin Niao He)
Teil 3: «Ich schätze die Freiheit, auf meine angeborene Neugierde hören zu können» (Professorin Ana Klimovic)
Frau Professorin Klimovic, wann haben Sie gemerkt, dass Sie Wissenschaftlerin werden wollten?
Ich habe viele verschiedene Karrierewege in Betracht gezogen, unter anderem als Wissenschaftlerin, Lehrerin oder Schriftstellerin. Professorin zu sein, ist eine Kombination aus all diesen Möglichkeiten. In der Highschool habe ich mich besonders für Mathematik und Physik interessiert. Ich entschied mich für einen Bachelor-Studiengang namens Engineering Science an der Universität von Toronto. In meinem zweiten Studienjahr belegte ich einen phänomenalen Kurs über digitale Logik und Computerarchitektur, der mich für die Funktionsweise von Computern begeisterte. Ich wählte die Vertiefungsrichtung Elektro- und Computertechnik meines Bachelor-Studiums in Toronto und machte dann einen Master und ein Doktorat in Elektrotechnik an der Stanford University.
Hatten Sie Mentor:innen oder Vorbilder, die Sie auf Ihrem Weg unterstützt oder sogar inspiriert haben?
Auf jeden Fall. An der Universität von Toronto haben mich die Professorinnen und Professoren Jason Anderson, Natalie Enright Jerger und Jonathan Rose dazu inspiriert, Computerarchitektur zu studieren und Professorin zu werden. Die Forschungspraktika, die ich im Sommer bei den Professoren Vladimir Stojanovic am MIT und Borivoje Nikolic an der UC Berkeley absolviert habe, haben meine Forschungsinteressen stark geprägt und mich dazu bewogen, nach dem Bachelor-Abschluss weiterzustudieren. Mein Doktorvater an der Stanford University, Christos Kozyrakis, hat mir viel darüber beigebracht, wie man Forschungsprobleme findet und angeht – und hat in vielerlei Hinsicht die Art und Weise geprägt, wie ich heute meine Forschungsgruppe an der ETH leite. Ich stehe auch immer noch in Kontakt mit meinen Mentorinnen und Mentoren aus Forschungspraktika in der Industrie, wie zum Beispiel Eno Thereska, der mein Mentor bei Microsoft Research war und mir viel darüber beigebracht hat, wie man Forschungsartikel schreibt und Forschung an grossen Systemen betreibt. An der ETH lerne ich weiterhin von den Professoren Gustavo Alonso und Timothy Roscoe, die beide ausgezeichnete Mentoren sind, und mit denen ich in der Lehre und an gemeinsamen Forschungsprojekten zusammenarbeite.
Sie kamen vor etwa vier Jahren als Assistenzprofessorin an die ETH Zürich. Wie ist Ihre Zeit hier bisher verlaufen?
Das stimmt, im September werden es vier Jahre sein, und es war bisher eine grossartige Erfahrung, eine Forschungsgruppe von Grund auf aufzubauen, aber auch mit viel Unterstützung vom Institute of Computing Platforms, dem ich angehöre – und ganz allgemein vom Departement. Ich finde es gut, dass es eine Menge anderer Assistenzprofessorinnen und Assistenzprofessoren gibt, die etwa zur gleichen Zeit angefangen haben. Es gibt also diese Gemeinschaft eines wachsenden, jungen, sehr aktiven und dynamischen Departments. Es ist ein hervorragendes Umfeld für diese Reise der Assistenzprofessur.
Woran hatten Sie geforscht, bevor Sie an die ETH kamen?
Bevor ich an die ETH kam, hatte ich an der Stanford University im Bereich Computersysteme promoviert. Ich habe mich auf Speichersysteme für Cloud-Computing konzentriert und war dann ein Jahr lang als Forscherin bei Google tätig. Bei Google war ich Teil des Google-Brain-Teams. Dort fing ich an, mich mehr und mehr für Anwendungen des maschinellen Lernens und deren Rechen- und Speicheranforderungen zu interessieren – und dafür, wie man sie aus einer Systemperspektive effizienter machen kann. Diese Zeit bei Google war eine gute Gelegenheit, meinen Horizont zu erweitern, bevor ich eine Stelle als Professorin antrat.
Welchen Rat würden Sie jungen Forschenden geben, die eine Professur anstreben?
Während des Doktorats ist man naturgemäss sehr fokussiert und spezialisiert. Aber als Professor:in muss man sicherstellen, dass man eine breit gefächerte, ganzheitliche Perspektive hat. Man muss mehrere Forschungsrichtungen abdecken, die miteinander zusammenhängen. Aber man muss auch einen Überblick über das Fachgebiet haben, um die Studierenden anzuleiten und sicherzustellen, dass sie in fruchtbare Richtungen arbeiten und miteinander zusammenarbeiten können.
War diese inhaltliche Breite einer der Gründe, warum Sie sich für eine akademische Laufbahn entschieden haben?
Ich denke, ja. Ich schätze die Freiheit, auf meine angeborene Neugierde hören zu können – und ich habe viel Freiheit, zu entscheiden, welche Probleme ich für wichtig halte und wie ich an die Entwicklung von Lösungen herangehe. In meinem Forschungsbereich, der sehr anwendungsorientiert ist, wird oft die Frage gestellt, warum man das nicht einfach in der Industrie macht. Die Industrie bietet grosszügige Finanzierung, riesige Computercluster und so weiter – und das ist sehr verlockend. Tatsächlich findet in der Industrie eine Menge interessanter Forschung in diesem Bereich statt. Andererseits gefällt mir die Kombination aus der Zusammenarbeit mit der Industrie, um die sich anbahnenden Trends und Probleme zu verstehen, und der Freiheit des akademischen Umfelds, diese Probleme mit potenziell neuen Lösungen anzugehen, statt darauf beschränkt zu sein, bestehende Systeme zu optimieren, um bald ein Produkt auf den Markt zu bringen. An der Hochschule können wir hingegen grundlegend darüber nachdenken, was der richtige Weg ist, um diese Systeme zu entwickeln.
Sie erwähnten soeben die Interaktion mit der Industrie als wesentliches Element Ihrer Forschungsarbeit: Fühlen Sie sich an der Hochschule benachteiligt, weil Sie möglicherweise keinen Zugang zu den Ressourcen erhalten, die Forschende in der Industrie haben? Oder ist das überhaupt kein Problem?
Mit den Ressourcen, die wir an der ETH haben, und auch durch die Nutzung von Public Clouds können wir viele Forschungsfragen untersuchen. Wir nutzen Rechnercluster an der ETH für erste Experimente auf einer Skala von etwa 20 Rechnerknoten. Oft nutzen wir auch die Cloud für Experimente, bei denen wir auf mehr Knoten skalieren. Ausserdem arbeiten wir mit der Industrie zusammen. Zum Beispiel machen Studierende oft Praktika, bei denen sie noch grössere Experimente mit echten Workloads durchführen können.
«Als Professor:in muss man sicherstellen, dass man eine breit gefächerte, ganzheitliche Perspektive mit mehreren Forschungsrichtungen hat.»Professorin Ana Klimovic
Eine Ihrer Aufgaben als Professorin ist die Lehre. Wie haben Sie diese Seite der Hochschulwelt bisher erlebt?
Das Unterrichten macht mir wirklich Spass. Ich finde es sehr lohnend. Ich unterrichte gemeinsam mit Professor Timothy Roscoe die Bachelor-Lehrveranstaltung «Systems Programming and Computer Architecture». Zudem unterrichte ich im Master-Studiengang die Lehrveranstaltung «Cloud Computing Architecture» – ein Thema, das meiner Forschung besonders nahesteht. Es ist jedes Jahr interessant, den Stoff zu überarbeiten. Es gibt immer neue Inhalte und sehr relevante Meldungen von Amazon, NVIDIA und anderen, die mit neuer Hardware oder neuen Cloud-Diensten aufwarten. Es ist also ein sehr dynamisches Feld. Und es ist schön, dies mit den Studierenden zu teilen und sie auch an einem Projekt arbeiten zu lassen, bei dem sie praktische Erfahrungen mit der Verwaltung und dem Aufbau von Orchestrierungs- oder Planungssystemen in der Cloud sammeln können. Und im Bachelor-Studiengang geht es darum, quasi die Zwiebel Schicht für Schicht zu schälen, um Fragen auf den Grund zu gehen – zum Beispiel, wie der Code, den man schreibt, auf einem Prozessor ausgeführt wird, was im Speicher oder im Prozessor passiert, während das Programm ausgeführt wird. Es macht mir also Freude, mit den Studierenden zu interagieren, darüber nachzudenken, wie man diese Materie vermitteln kann, und ihre Fragen zu hören. Ich glaube, das ist einer der Gründe, warum ich die akademische Welt so mag: die Kombination der vielen verschiedenen Rollen, die man spielt. Es gibt viele verschiedene Dimensionen – und das macht die Sache sehr dynamisch. Jeder Tag ist anders.
Einer Ihrer Hauptforschungsbereiche ist das serverlose Computing. Was ist das und warum ist es so wichtig?
Die Kernidee des serverlosen Computings besteht darin, die Abstraktionsebene für Cloud-Nutzende anzuheben. Beim Standardparadigma des Cloud-Computings würde man die Cloud nutzen, indem man eine virtuelle Maschine mietet. Obwohl sich der Cloud-Anbieter um die Wartung und Stromversorgung der physischen Server kümmert, muss der Nutzende nach wie vor eine Vielzahl komplexer Entscheidungen zur Ressourcenverwaltung treffen. Der Anbieter stellt einem einen Katalog virtueller Maschinen zur Verfügung, aus dem man auswählen kann, wobei jede Maschine über eine unterschiedliche Menge an Prozessoren (Central processing units, kurz CPUs), Arbeitsspeicher, Datenspeicherung, Beschleunigern, Netzwerkbandbreite usw. verfügt. Man muss also Entscheidungen über den Hardwarebedarf treffen, als ob man die Hardware kaufen würde, nur dass man sie mietet. Anwendungsentwickler:innen möchten sich jedoch in der Regel auf ihre Anwendungslogik konzentrieren. Sie wollen sich keine Gedanken darüber machen, wie viele CPU-Kerne und welche Art von Server sie mieten sollten. Serverloses Computing zielt darauf ab, die Nutzung der Cloud zu vereinfachen, so dass wir nicht alle Systemexpert:innen sein müssen. Ein weiterer einzigartiger Aspekt von Serverless ist die feine Granularität der Aufgaben, die man in der Cloud ausführen kann. Anstatt eine ganze virtuelle Maschine zu mieten, registriert man kleinteilige, kurzlebige Berechnungen und legt fest, wann diese Berechnungen aufgerufen werden sollen (beispielsweise, wenn Daten aus einer bestimmten Quelle verfügbar werden). Der Schlüssel dazu ist die Systeminfrastruktur, die dafür sorgt, dass diese kleinen Aufgaben schnell geplant und ausgeführt werden können. Eine unserer Forschungsrichtungen zielt darauf ab, die Effizienz und Leistung dieser Art von Rechenplattformen zu verbessern.
Ist dies das Ziel des Dandelion-Projekts?
Ja. Die Idee hinter dem Dandelion-Projekt ist es, eine neue Serverless-Computing-Plattform zu entwickeln, die den Nutzenden eine intuitive, hochgradige Abstraktion bietet und gleichzeitig die Plattform in die Lage versetzt, Funktionen effizienter auszuführen, um einen höheren Durchsatz pro Maschine zu unterstützen. Ein höherer Durchsatz senkt auch die Kosten, da man dann weniger Maschinen benötigt, um die gleiche Last zu bewältigen. Wir tun dies, indem wir das Programmiermodell für serverloses Computing überdenken, so dass wir der Plattform etwas mehr Informationen darüber geben, welcher Teil einer Anwendung Berechnungen und welcher Kommunikation beinhaltet. Benutzer erstellen Anwendungen, indem sie reine Berechnungsfunktionen (bei denen sie beliebigen, nicht vertrauenswürdigen Code bereitstellen können) und Kommunikationsfunktionen (bei denen es sich um vertrauenswürdigen Code handelt, der von der Plattform implementiert und den Anwender:innen als Bibliothek zur Verfügung gestellt wird) zusammenstellen. Dann erstellen wir ein System, das dieses Programmiermodell nutzt, um Funktionen effizient auszuführen. Da nicht vertrauenswürdiger Code aus reinen Funktionen besteht, die mit deklarierten Eingaben rechnen, kann Dandelion beispielsweise den gesamten Speicherbereich und die Eingaben vorbereiten, die eine Funktion benötigt, bevor sie mit der Ausführung beginnt, und der nicht vertrauenswürdige Code kann ohne Unterstützung für Systemaufrufe ausgeführt werden. Dadurch wird die Angriffsfläche von nicht vertrauenswürdigem Code im Vergleich zum traditionellen Serverless Computing erheblich reduziert, und wir können Funktionen mit leichteren Isolierungsmechanismen ausführen. Auf diese Weise können wir Funktionen viel schneller aufsetzen, einen höheren Durchsatz pro Maschine (und damit geringere Kosten) erzielen und gleichzeitig starke Sicherheitsgarantien aufrechterhalten.
«Das ist einer der Gründe, warum ich die akademische Welt so mag: die Kombination der vielen verschiedenen Rollen, die man spielt. Jeder Tag ist anders.»Professorin Ana Klimovic
Ein weiteres Thema, an dem Sie arbeiten, ist die Hardware- oder Plattformoptimierung für Anwendungen des maschinellen Lernens. Was ist die Herausforderung, die Sie hier angehen wollen?
Im Grossen und Ganzen arbeitet meine Gruppe an Computersystemen für Cloud-Computing – und ein wichtiger Anwendungsbereich, der in der Cloud läuft, ist maschinelles Lernen. Maschinelles Lernen ist sehr energieintensiv, es erfordert viele Grafikprozessoren (Graphics processing units, kurz GPUs), viele Rechenstunden, eine hohe Netzwerkbandbreite, Speicherplatz usw. Es ist extrem rechenintensiv und muss daher unbedingt optimiert werden. Wir sind daran interessiert, maschinelles Lernen kostengünstiger (d. h. ressourceneffizienter) zu machen, so dass es in noch mehr Bereichen angewendet werden kann. Wir gehen dies aus einer Systemperspektive an. Wir untersuchen, wie man die GPUs, die man in der Cloud mietet, optimal nutzen kann. Selbst bei der Ausführung von Modelltrainings-Berechnungen für maschinelles Lernen, die sehr rechen- und speicherintensiv sind, kann die Auslastung der GPU oft recht niedrig sein. Für diese niedrige Auslastung gibt es mehrere Gründe. Es kann zu Engpässen in anderen Teilen des Systems kommen, die nicht auf der GPU liegen, beispielsweise bei der Vorverarbeitung der Daten auf der CPU. Dadurch erhöhen sich die Kosten für die Ausführung des Workloads, weil die Ausführung des Auftrags länger dauert. Sie müssen diese GPUs also länger mieten.
Ein weiterer Engpass könnte in der Synchronisierung von Tasks und dem Austausch von Daten liegen. Wenn man sich anschaut, wie einzelne Berechnungen beim maschinellen Lernen ablaufen, sieht man stark schwankende Auslastungsmuster mit Momenten hoher Auslastung, aber im Durchschnitt beträgt die Auslastung nur 50 Prozent oder weniger. Es stellt sich also die Frage, wie man dies verbessern kann. Man muss eine gute Co-Location-Strategie entwickeln und ein Profil dieser Anwendungen erstellen, um zu verstehen, welche Teile der Anwendung rechen- und welche speicherintensiv sind und welche sich für eine Co-Location eignen. Dies ist also eine aktuelle Fragestellung: Wie lassen sich Aufträge effizient auf GPUs planen, so dass wir eine hohe Ressourcenauslastung erreichen können?
Zu den anderen Themen, die wir erforschen, gehört die Systeminfrastruktur zur effizienten Verwaltung der Daten, die für das Training von ML-Modellen verwendet werden – insbesondere dann, wenn Modelle regelmässig neu trainiert werden müssen, weil neue Daten hinzukommen. Wir erforschen auch, wie man grosse Modelle (z. B. grosse Sprachmodelle) effizient bereitstellen kann, vor allem, wenn man mehrere Varianten grosser Modelle hat, die für verschiedene Anwendungsfälle angepasst sind, und man Anfragen an viele Modellvarianten gleichzeitig bearbeiten muss
Sie sind auch an der Swiss AI Initiative beteiligt. Was ist Ihre Rolle dort?
Das Ziel der Swiss AI Intiative ist es, das Potenzial von Basismodellen zum Nutzen der Gesellschaft auszuschöpfen. Aufgrund der für das Trainieren dieser Modelle erforderlichen Rechenressourcen war dies bisher vor allem eine Domäne, die nur von grossen Unternehmen besetzt wurde. Es ist jedoch sehr wichtig, dass diese Technologie auch an den Hochschulen erforscht wird, und dass der soziale Nutzen im Vordergrund steht. Das Ziel ist es also, eine riesige Rechenanlage, den CSCS Alps Cluster, zu nutzen und die Kräfte der ETH, der EPFL und anderer Institutionen sowie potenzieller externer Partner zu bündeln, um ein Open-Source-Modell mit Open-Source-Daten zu trainieren und es auf verschiedene Anwendungsbereiche anzuwenden: Medizin, Bildung, und auch wissenschaftliche Grundlagenforschung. Ich bin Mitglied des Lenkungsausschusses, der diese Initiative organisiert. Zudem bin ich Co-Leiterin beim Querschnittsthema Infrastruktur. Dieser Teil der Initiative konzentriert sich auf die Interaktion von Systemsoftware und -Hardware, um eine gute Effizienz und Leistung bei der Ausführung von KI-Berechnungen zu erreichen. Es handelt sich um eine spannende, gross angelegte Initiative, mit einem enormen Potenzial für echte Auswirkungen auf die Gesellschaft. Sie befindet sich noch in der Anfangsphase und ich freue mich darauf, ihre Entwicklung in den kommenden Jahren zu beobachten.
Ana Klimovic ist Assistenzprofessorin am Departement Informatik der ETH Zürich, wo sie das Efficient Architectures and Systems Lab (EASL) innerhalb des Institute for Computing Platforms – Systems Group leitet.
Sie arbeitet an Computersystemen für gross angelegte Anwendungen wie Cloud-Computing-Services, Datenanalyse und maschinelles Lernen. Das Ziel ihrer Forschung ist es, die Leistung sowie die Ressourceneffizienz von Cloud-Computing zu verbessern und gleichzeitig den Benutzerinnen und Benutzern die Bereitstellung und Verwaltung ihrer Anwendungen zu erleichtern. Ihre Forschungsinteressen umfassen Betriebssysteme und Computerarchitektur sowie deren Überschneidungen mit maschinellem Lernen.
Bevor sie an die ETH kam, hatte sie ein Jahr als wissenschaftliche Mitarbeiterin bei Google Brain verbracht. Sie schloss ihr Doktorat in Elektrotechnik an der Stanford University ab, betreut von Professor Christos Kozyrakis. In ihrer Dissertation befasste sie sich mit dem Design und der Implementierung von schneller, elastischer Datenspeicherung für Cloud-Computing. Ihren Master-Abschluss in Elektrotechnik erlangte sie 2015 an der Stanford University. Zuvor hatte sie 2013 einen Bachelor-Abschluss in Angewandter Wissenschaft und Technik im Studiengang Ingenieurwissenschaften an der Universität von Toronto erhalten.
Weitere Informationen
- Homepage von Ana Klimovic und dem Efficient Architectures and Systems Lab (EASL)
- Institute for Computing Platforms – Systems Group
- ETH AI Center
- externe Seite Swiss AI Initiative
- externe Seite Stanford University
- externe Seite University of Toronto