Software in der Forschung – ein Gespräch mit Prof. Markus Diesmann
Software in der Forschung – ein Gespräch mit Prof. Markus Diesmann
Software ist ein integraler Bestandteil der wissenschaftlichen Forschung, doch ihre Bedeutung bleibt oft unbemerkt. Von Lizenzen und Infrastruktur bis hin zu Benutzerfreundlichkeit – die vielschichtige Natur von Software in der Forschung erfordert Aufmerksamkeit. In einem gemeinsamen Artikel haben Philosophen und Experten aus verschiedenen wissenschaftlichen Bereichen die komplizierte Beziehung zwischen Modellen, Software und Computational Science beleuchtet.
Wir haben darüber mit Markus Diesmann gesprochen, Direktor des Insitute for Advanced Simulations – Computational and Systems Neuroscience (IAS-6), Leiter der Gruppe Computational Neurophysics und einer der ursprünglichen Entwickler von NEST – einer Simulationssoftware für neuronale Netzwerke.
In welchen Bereichen kommt Software in den Naturwissenschaften zum Einsatz?
Heute kommt Software in allen Naturwissenschaften zum Einsatz. Damit meine ich nicht Software, die wir alle zum Erstellen von Texten, Präsentationen oder auf unseren Telefonen benutzen. Ich beziehe mich auf Software, die direkt für die Forschung selbst eingesetzt wird.
Beispielsweise hat sich Simulation als dritte Säule der wissenschaftlichen Methode neben Theorie und Experiment etabliert. Wir können heute detaillierte mathematische Modelle der Natur erstellen, weil wir die grundlegenden physikalischen Mechanismen verstehen und genaue experimentelle Daten zu den Komponenten verfügbar sind. Allerdings sind die Modelle dann so komplex, dass wir nicht verstehen können, wie das Zusammenspiel der verschiedenen Komponenten die jeweiligen Eigenschaften des darzustellenden Gesamtsystems hervorbringt. Eine Simulationssoftware kann aber von einem Anfangszustand ausgehend berechnen, welche Werte bestimmte Messgrößen nach einer gewissen Zeit annehmen werden – vorausgesetzt das Modell beschreibt die Natur korrekt. Schritt für Schritt kann so ein Computer berechnen, wie ein Aspekt der Natur sich über die Zeit verändern wird. Vorhersagen können nun detailliert mit experimentellen Ergebnissen verglichen werden. Forschende können das Modellverhalten untersuchen und mit einfacheren mathematischen Beschreibungen besser verstehen lernen. Weiterhin kann ein Modell erforscht werden, indem die Auswirkungen von Veränderungen analysiert werden, wie sie im Experiment in der Natur nur schwer oder gar nicht möglich sind. Solche genauen Abbilder der Natur oder auch eines technischen Systems, wie eine Fabrik oder ein Flugzeug, werden Digitaler Zwilling genannt.
Ein anderer Aspekt sind die Betriebssysteme von experimentellen Rechnern wie Quantencomputern oder Neuromorphen Computern. Diese Systeme sind physikalisch in Elektronik realisiert. Damit sie aber von Forschenden genutzt werden können, sind viele Schichten von Software notwendig, die so gestaltet sein muss, dass bei einer Änderung der Hardware nicht die gesamte Software ersetzt werden muss. Das gleiche gilt für die Steuerung großer wissenschaftlicher Instrumente.
Im traditionellen Bereich der Datenanalyse, der heute durch Methoden der Künstlichen Intelligenz (KI) ergänzt wird, entsteht ebenfalls immer mehr Software, um den wachsenden Datenmengen gerecht werden zu können.
Neben diesen prominenten Bereichen, in denen Forschung heute von wissenschaftlicher Software abhängt, möchte ich noch einen Bereich nennen, der nicht so sichtbar ist. Forschende schreiben heute in ihrem Alltag viele kleine Schnipsel von Software, um schnell Daten aufzubereiten, zu analysieren und zu visualisieren. Diese Software ist nicht zur langfristigen Weiterentwicklung gedacht, muss aber dennoch korrekt sein und ihr Einsatz dokumentiert werden.
Software, die wir im täglichen Leben nutzen, ist sehr oft für einen großen Benutzerkreis gedacht. Dementsprechend hat sie auch üblicherweise eine robuste Infrastruktur, wird von professionellen Softwareentwicklern gepflegt und an aktuelle Entwicklungen angepasst. Das ist vermutlich bei spezieller wissenschaftlicher Software nicht immer der Fall, oder?
Ganz genau. Lange haben weder Wissenschaft noch Geldgeber das erkannt. Es gibt hier zwei Aspekte. Zum einen unterliegt Software in der Wissenschaft anderen Anforderungen und wird anders entwickelt als in der Industrie. Es fängt damit an, dass ein tiefes Fachgebietswissen erforderlich ist, um eine wissenschaftliche Software zu erstellen. Es sind also die Forschenden selbst, insbesondere Promovierende, die den Code erstellen – nicht professionelle Softwareentwickler. Weiterhin muss eine wissenschaftliche Software nicht nur eine bestimmte Aufgabe erfüllen. Mit dem wissenschaftlichen Fortschritt ändert sich kontinuierlich auch die Aufgabe der Software. Die Architektur muss also einfach und robust genug sein für Forschende, die nur eine begrenzte Zeit an der Software mitarbeiten und für die Softwareentwicklung nur ein Teil ihrer Aufgabe ist. Andererseits muss die Architektur flexibel genug sein, um sich neuen Aufgabenstellungen anpassen zu können. Für die Industrie hat ein Gebiet der Informatik, das Software Engineering (SE), gute Methoden erarbeitet, mit denen korrekte Software effizient entwickelt und dokumentiert werden kann. Für wissenschaftliche Software entwickelt sich gerade das Research Software Engineering (RSE), um der wachsenden Bedeutung von Software in der Wissenschaft gerecht zu werden und das SE an die Verhältnisse in der Wissenschaft anzupassen.
Die Wissenschaft hat lange angenommen, dass sich Software schnell und kostengünstig von jungen Leuten erstellen lässt, während Hochleistungsrechner große Investitionen erfordern und lange betrieben werden. In der Praxis ist aber das genaue Gegenteil der Fall: Relevante wissenschaftliche Software hat eine Lebensdauer von mehreren Jahrzehnten, während Rechner in der Forschung mit einem Zyklus von fünf Jahren ersetzt werden, um von der jeweils aktuellen Hardware profitieren zu können. Wissenschaftliche Software muss also über einen langen Zeitraum gewartet werden, um sie an neue Hardware und neue Aufgaben anzupassen, möglicherweise über die aktive Phase der ursprünglichen Entwickler hinaus. In diesem Sinne ist eine wissenschaftliche Software eine wissenschaftliche Infrastruktur und ein Thema für die Großforschung.
Welchen Einfluss hat eine spezielle Software auf wissenschaftliche Theorien und Modelle?
Das ist eine sehr gute Frage, die von der Philosophie und Soziologie gerade untersucht wird. Vordergründig sind viele Modelle heute so komplex, dass wir ohne die Hilfe von Software gar keine Vorhersagen berechnen könnten. Denken Sie zum Beispiel an Wettermodelle, die unzählige Faktoren berücksichtigen müssen, die das Wetter beeinflussen könnten. Die Möglichkeit die Eigenschaften von Modellen mit Simulationen zu explorieren, inspiriert Forschende zu neuen Theorien. Wesentlicher ist aber, wie die Verfügbarkeit einer speziellen Software das Denken der Forschenden beeinflusst und möglicherweise in eine bestimmte Richtung lenkt.
Es war schon immer so, dass die Technologien beeinflusst haben, wie Forschende über die Natur nachgedacht haben. In Bezug auf Software passiert das auf subtile Weise. Nehmen Sie unsere Simulationssoftware NEST. Mit ihr können Forschende mit wenigen Befehlen Modelle neuronaler Netzwerke in einem Rechner erstellen. Ein Befehl verbindet beispielsweise ein Modellneuron mit genau einem anderen, ein anderer Befehl erstellt Verbindungen zwischen mehreren Neuronen mit einer gewissen Wahrscheinlichkeit. Es ist denkbar, dass die Befehle, die zur Verfügung stehen und die Konstruktion mancher Netzwerke einfacher machen als andere, beeinflussen, wie Forschende über neuronale Netzwerke in der Natur nachdenken. In einer Studie zusammen mit Philosophen der RWTH Aachen haben wir für einen ganz eingeschränkten Bereich untersucht, welche Begriffe Forschende in der Literatur zur Beschreibung von neuronalen Netzwerken benutzen, welche Software dafür eingesetzt wird und wie sich diese Begriffe mathematisch definieren lassen. Eine Simulationssoftware kann nun versuchen, diesen Begriffsraum gut abzubilden. Welche Rückwirkung dies wieder auf die Forschung hat und ob dadurch Aspekte der Natur übersehen werden, muss weiter untersucht werden.
Ein anderes Beispiel. „Für die Modelle, die mich interessieren, genügt mein Laptop,“ sagen einige Forschende. Der Satz vermittelt, dass es zunächst eine wissenschaftliche Fragestellung gibt und dann festgestellt wird, dass zur Beantwortung ein Laptop ausreicht. Aber könnte nicht auch eine unbewusste Selbstbeschränkung dahinterstehen? Wie würde die Aussage ausfallen, wenn die Untersuchung viel umfassenderer Modelle genauso einfach wäre, wie die von Modellen, die heute auf einen Laptop passen? Hier kommt die Bedeutung von Software ins Spiel. Sie kann technische Unterschiede der Rechner für Forschende bedeutungslos machen. Beispielsweise ist die Benutzung unserer Simulationssoftware NEST unabhängig davon, ob sie auf einem Laptop oder einem Supercomputer läuft. Wenn wissenschaftliche Software dies erreicht und das Wissen darüber zu den Forschenden durchdringt, kann es gedankliche Freiräume schaffen.
Es gibt aber auch noch einen soziologischen oder kulturellen Aspekt. Wenn eine forschende Person eine wissenschaftliche Software verwendet, die sie nicht selbst geschrieben hat, gibt sie einen Teil ihrer Autonomie auf. Eine wissenschaftliche Software wird heute von vielen Forschenden gemeinsam entwickelt und von noch mehr Forschenden genutzt. Nur so ist es möglich, weiter Fortschritt zu erzielen und Fragestellungen anzugehen, die darüber hinausgehen, was eine einzelne forschende Person leisten kann. Manche Bereiche der Naturwissenschaft sind aber noch von einer hohen Individualität geprägt. Diese tun sich entsprechend schwer mit dem Gedanken der Forschung in großen Kooperationen. So ist es auch in der Neurowissenschaft – meinem eigenen Gebiet. Andere Bereiche, wie die Hochenergiephysik, sind schon länger auf die Kooperation in großen Verbünden angewiesen, weil hier der Bau großer Instrumente notwendig ist. Peter Galison hat die Schmerzen und Widerstände in der Hochenergiephysik bei diesem Übergang beschrieben. Wir können in diesem Zusammenhang eine wissenschaftliche Software wie ein wissenschaftliches Instrument sehen. Denken Sie an einen Teilchenbeschleuniger, ein Teleskop, oder ein Forschungsschiff.
Welche Maßnahmen sind Ihrer Meinung nach notwendig, um wissenschaftliche Software zu verbessern, und wie sollte in Zukunft vorgegangen werden?
Software verändert die Wissenschaft. Wir können heute Probleme angehen, deren Lösung vor einigen Jahren noch undenkbar gewesen wäre. Das bedeutet aber auch, dass der wissenschaftliche Fortschritt von der Qualität und der Verfügbarkeit wissenschaftlicher Software abhängt. Heute benutzen alle Forschenden Software und fast alle entwickeln zumindest Teile davon. Die Wissenschaft und die Fördereinrichtungen haben aber noch nicht vollständig realisiert, welche tiefgreifenden Änderungen notwendig sind, um den Fortschritt langfristig zu sichern. Wir haben zwei Bereiche identifiziert, in denen dringender Handlungsbedarf besteht.
Zum einen müssen wir Kompetenz in Research Software Engineering (RSE) an den Universitäten und Forschungseinrichtungen anbieten. Im Sinne von zentralen Stellen, an die sich Forschende wenden können, um Unterstützung zu bekommen. Mittelfristig sollten wir eine Ausbildung in RSE in die naturwissenschaftlichen und technischen Studiengänge integrieren, um den Studenten das grundlegende Handwerkszeug zu vermitteln, so wie es beim Forschungsdatenmanagement gerade passiert. Das klassische Software Engineering wird sicher auch Lehrstühle einrichten, die sich auf die Erforschung von RSE-Methoden konzentrieren, so wie es für andere Anwendungsbereiche auch geschehen ist.
Zum anderen müssen wir lernen, relevante wissenschaftliche Software als Infrastruktur zu sehen und die finanziellen Voraussetzungen dafür schaffen, dass diese bei Bedarf über Jahrzehnte betrieben werden kann. Die grundlegende Schwierigkeit hier ist, dass in der Forschung finanziell strikt zwischen Investitionen und Personalmitteln unterschieden wird. Konventionelle Infrastrukturen bestehen aus Stahl und Beton und sind deshalb zu einem großen Teil Investitionen. Eine Software-Infrastruktur verursacht aber zu fast einhundert Prozent Personalkosten und kann deshalb aus Investitionsmitteln nicht finanziert werden. Es hört sich etwas albern an, aber dieser Punkt scheint erhebliche Schwierigkeiten zu machen.
Hintergrundinformation
Senk, J., Kriener, B., Djurfeldt, M., Voges, N., Jiang, H.-J., Schüttler, L., Gramelsberger, G., Diesmann, M., Plesser, H. E., van Albada, S. J. (2022) Connectivity concepts in neuronal network modeling. PLoS Computational Biology 18(9):e1010086
Jordan, J., Ippen, T., Helias, M., Kitayama, I., Sato, M., Igarashi, J., Diesmann, M., Kunkel, S. (2018) Extremely Scalable Spiking Neuronal Network Simulation Code: From Laptops to Exascale Computers. Frontiers in Neuroinformatics 12:2
Galison, P. (1997) Image and Logic: A Material Culture of Microphysics. Chicago University Press
Aimone, J. B., Awile, O., Diesmann, M., Knight, J. C., Nowotny, T., Schürmann, F. (2023) Editorial: Neuroscience, computing, performance, and benchmarks: Why it matters to neuroscience how fast we can compute. Frontiers in Neuroinformatics 17:1157418
Kunkel, S., Diesmann, M. (2024) Entwicklung des Research Software Engineering am Beispiel von NEST: Wissenschaftliche Software ist wissenschaftliche Infrastruktur. In: RWTH Themenheft Research Software Engineering 2024, 50-53 (im Druck)
Grunske, L., Lamprecht, A.-L., Hasselbring, W., Rumpe, B. (2024) Research Software Engineering: Forschungssoftware effizient erstellen und dauerhaft erhalten. Forschung & Lehre 3/24 186-188
Originalpublikation
Hocquet, A., Wieber, F., Gramelsberger, G., Hinsen, K., Diesmann, M., Santos, F. P., Landström, C., Peters, B., Kasprowicz, D., Borrelli, A., Roth, P., Ai Ling Lee, C., Olteanu, A., & Böschen, S. Software in science is ubiquitous yet overlooked. Nature Computational Science (2024). https://doi.org/10.1038/s43588-024-00651-2