Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Physik# Instrumentierung und Detektoren# Software-Entwicklung

JUNO-Projekt: Neutrino-Forschung mit modernen Software-Tools vorantreiben

JUNO nutzt neue Software-Tools, um die Neutrino-Forschung und Datenanalyse zu optimieren.

― 6 min Lesedauer


Software-Evolution desSoftware-Evolution desJUNO-ProjektsNeutrino-Datenverarbeitung.Effizienz derModerne Werkzeuge verbessern die
Inhaltsverzeichnis

Das Jiangmen Underground Neutrino Observatory (JUNO) ist ein wissenschaftliches Projekt, das im Süden Chinas gebaut wird. Es wird eingerichtet, um Neutrinos zu studieren, das sind winzige Teilchen, die wichtig sind, um das Universum zu verstehen. Die Hauptziele des JUNO-Projekts sind herauszufinden, wie schwer Neutrinos sind, und zu messen, wie sie von einem Typ in einen anderen wechseln. Das Observatorium soll 2024 mit der Datensammlung beginnen und über 20 Jahre in Betrieb sein.

JUNO hat eine komplexe Struktur. Der Hauptdetektor ist von einem grossen Wasserbecken umgeben, das hilft, kosmische Strahlen aufzufangen. Der Hauptteil des Detektors ist ein kugelförmiger Behälter, der mit einer speziellen Flüssigkeit gefüllt ist, die leuchtet, wenn Neutrinos mit ihr interagieren. Dieser Behälter ist mit Tausenden von Lichtsensoren ausgestattet, die die winzigen Lichtblitze erfassen können, die durch diese Interaktionen entstehen.

Bedeutung von Software in JUNO

Im Rahmen des JUNO-Projekts gibt's eine Menge Daten, die verarbeitet werden müssen. Die Software, die diese Daten bearbeitet, heisst JUNOSW. Diese Software ist essenziell, um die Rohdaten vom Detektor in nützliche Informationen umzuwandeln, die Wissenschaftler analysieren können.

Die Entwicklung von JUNOSW begann 2012 und hat viele Herausforderungen gemeistert. Im Laufe der Zeit musste die Software mit neuen Anforderungen Schritt halten, wie zum Beispiel die Zeit zur Erstellung der Software zu verkürzen und die Qualität des Codes zu verbessern.

Frühe Software-Entwicklungstools

Anfangs wurde JUNOSW mit Tools wie Subversion, Trac und CMT entwickelt. Subversion wurde zur Versionskontrolle verwendet, damit die Entwickler Änderungen am Code nachverfolgen konnten. Trac bot eine Möglichkeit für Entwickler, den Code zu durchsuchen und Probleme zu melden, während CMT für den Bau der Software verwendet wurde.

Diese frühen Tools hatten jedoch ihre Einschränkungen. Zum Beispiel dauerte der Bau der gesamten Software lange, was für die Entwickler frustrierend war. Ausserdem gab's keinen richtigen Code-Review-Prozess, sodass Fehler unbemerkt bleiben konnten. Mit dem Wachstum der Software wurde die Wartung schwieriger.

Umstieg auf moderne Entwicklungstools

Um diese Probleme anzugehen, begann JUNOSW mit der Umstellung auf moderne Software-Tools. Dieser Wechsel erfolgte in mehreren Phasen:

  1. Wechsel von CMT zu CMake: CMake ist ein flexibleres Tool, das hilft, den Aufbau von Softwareprojekten zu verwalten. Es ermöglicht Entwicklern, ihren Code besser zu organisieren und macht den Bauprozess schneller und effizienter.

  2. Migration von Subversion zu Git: Git ist ein beliebtes Versionskontrollsystem, mit dem viele Entwickler vertraut sind. Diese Migration beinhaltete die Trennung des Codes von grösseren Datendateien, was das Repository einfacher zu verwalten machte.

  3. Aufteilung der Software in kleinere Projekte: Das grosse JUNOSW-Projekt wurde in kleinere, handhabbare Teile aufgeteilt, was es den Entwicklern erleichterte, an bestimmten Funktionen zu arbeiten, ohne mit dem gesamten System auf einmal umgehen zu müssen.

Verbesserungen mit CMake

Mit dem Umstieg auf CMake wurden mehrere Verbesserungen umgesetzt:

  • Der Quellcode und die Build-Dateien wurden getrennt gehalten, um versehentliche Änderungen am Code während des Build-Prozesses zu verhindern.
  • Eine neue Paketstruktur wurde etabliert, die eine klarere Organisation der Softwarekomponenten ermöglicht.
  • Benutzerdefinierte Makros wurden erstellt, um den Aufbau verschiedener Pakete zu vereinfachen, was es den Entwicklern erleichterte, die Software zu kompilieren.

CMake erlaubte auch die Nutzung von Generatorausdrücken, die halfen, verschiedene Build-Konfigurationen für Online- und Offline-Umgebungen zu verwalten. Das war besonders nützlich für Projekte, die in beiden Umgebungen funktionieren mussten.

Unterstützung von Teil-Checkouts

Nach dem Wechsel zu Git baten die Nutzer darum, nur Teile der Software statt des gesamten Projekts auszuchecken. Diese Anfrage kam häufig von Entwicklern, die vom vorherigen System kamen.

Um diesem Bedarf gerecht zu werden, wurde ein Tool namens git-junoenv entwickelt. Dieses Tool ermöglicht es den Nutzern, anzugeben, welche Pakete sie auschecken möchten, was den Prozess effizienter macht. Es unterstützt auch benutzerdefinierte Build-Ziele, sodass Entwickler den Build-Prozess auf ihre speziellen Bedürfnisse anpassen können.

Kontinuierliche Integration mit GitLab und Kubernetes

Kontinuierliche Integration ist eine Methode, die Entwicklern hilft, ihren Code automatisch zu testen und bereitzustellen. Für JUNOSW wurde dies mit GitLab und Kubernetes eingerichtet.

GitLab ist eine Plattform, die Teams erlaubt, ihren Code zu verwalten und effektiv zusammenzuarbeiten. Kubernetes ist ein System, das hilft, Anwendungen in Containern auszuführen, was die Verwaltung von Ressourcen erleichtert. Durch die Nutzung dieser Technologien konnte das JUNO-Projekt seinen Entwicklungsprozess optimieren.

GitLab-Runner wurden eingerichtet, um Aufgaben automatisch auszuführen, wenn Änderungen am Code vorgenommen wurden. Diese Runner wurden in einem selbstverwalteten Kubernetes-Cluster installiert, was eine effiziente Ausführung von Jobs und einfaches Skalieren bei Bedarf ermöglichte.

Erfolge seit dem Umstieg

Der Umstieg auf moderne Software-Entwicklungsmethoden hat grossartige Ergebnisse gezeigt. Mehr als 160 Mitglieder arbeiten jetzt über GitLab am JUNO-Projekt zusammen. In weniger als einem Jahr wurden über 300 Merge-Anfragen in den Code integriert, und Tausende von automatisierten Pipelines wurden erfolgreich ausgeführt.

Diese Verbesserungen haben geholfen, den Software-Entwicklungsprozess zu optimieren, sodass es für Wissenschaftler einfacher wird, sich auf ihre Forschung zu konzentrieren, anstatt mit veralteten Tools und langen Build-Zeiten zu kämpfen.

Zukünftige Richtungen

In die Zukunft blickend wird das JUNO-Projekt weiterhin seine Software-Entwicklungsmethoden verbessern. Durch den Einsatz moderner Tools und Techniken zielt die Zusammenarbeit darauf ab, die Code-Qualität weiter zu steigern, die Entwicklung zu beschleunigen und ein kooperatives Umfeld für alle Mitwirkenden zu fördern.

Mit der zunehmenden Beteiligung von Wissenschaftlern und dem Fortschritt des Projekts wird es entscheidend sein, eine flexible und effektive Software-Umgebung aufrechtzuerhalten. Die bisher erzielten Fortschritte dienen als solide Grundlage für die Zukunft.

Auswirkungen auf die wissenschaftliche Forschung

Die Fortschritte in der Software-Entwicklung für JUNOSW verbessern nicht nur die Effizienz des Projekts selbst, sondern tragen auch zur breiteren wissenschaftlichen Forschung bei. Durch die Verbesserung der Art und Weise, wie Daten gesammelt und analysiert werden, können Forscher genauere Einblicke ins Universum gewinnen.

Der Fokus auf moderne Tools und Praktiken wird wahrscheinlich auch andere wissenschaftliche Kooperationen beeinflussen und die Bedeutung der richtigen Technologie zur Unterstützung der Forschungsziele verdeutlichen.

Durch dieses Engagement für Innovation ist das JUNO-Projekt auf dem besten Weg, bedeutende Beiträge im Bereich der Teilchenphysik und unseres Verständnisses der grundlegenden Teilchen, aus denen das Universum besteht, zu leisten.

Originalquelle

Titel: Modern Software Development for JUNO offline software

Zusammenfassung: The Jiangmen Underground Neutrino Observatory (JUNO), under construction in South China, primarily aims to determine the neutrino mass hierarchy and to precise measure the neutrino oscillation parameters. The data-taking is expected to start in 2024 and the detector plans to run for more than 20 years. The development of the JUNO offline software (JUNOSW) started in 2012, and it is quite challenging to maintain the JUNOSW for such a long time. In the last ten years, tools such as Subversion, Trac, and CMT had been adopted for software development. However, new stringent requirements came out, such as how to reduce the building time for the whole project, how to deploy offline algorithms to an online environment, and how to improve the code quality with code review and continuous integration. To meet the further requirements of software development, modern development tools are evaluated for JUNOSW, such as Git, GitLab, CMake, Docker, and Kubernetes. This contribution will present the software development system based on these modern tools for JUNOSW and the functionalities achieved: CMake macros are developed to simplify the build instructions for users; CMake generator expressions are used to control the build flags for the online and offline environments; a tool named git-junoenv is developed to help users partially checkout and build the software; a script is used to build and deploy the software on the CVMFS server; a Docker image with CVMFS client installed is created for continuous integration; a GitLab agent is set up to manage GitLab runners in Kubernetes with all the configurations in a GitLab repository.

Autoren: Tao Lin

Letzte Aktualisierung: 2023-09-24 00:00:00

Sprache: English

Quell-URL: https://arxiv.org/abs/2309.13780

Quell-PDF: https://arxiv.org/pdf/2309.13780

Lizenz: https://creativecommons.org/licenses/by/4.0/

Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.

Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.

Mehr vom Autor

Ähnliche Artikel