Simple Science

Ciência de ponta explicada de forma simples

# Física# Instrumentação e Detectores# Engenharia de software

Projeto JUNO: Avançando a Pesquisa de Neutrinos com Ferramentas de Software Modernas

A JUNO usa novas ferramentas de software pra facilitar a pesquisa e a análise de dados de neutrinos.

― 6 min ler


Evolução do Software doEvolução do Software doProjeto JUNOneutrinos.eficiência do processamento de dados deFerramentas modernas melhoram a
Índice

O Observatório de Neutrinos de Jiangmen (JUNO) é um projeto científico localizado no sul da China. Ele tá sendo construído pra estudar neutrinos, que são partículas minúsculas importantes pra entender o universo. Os principais objetivos do projeto JUNO são descobrir o quão pesados são os neutrinos e medir como eles mudam de um tipo pra outro. O observatório deve começar a coletar dados em 2024 e vai operar por mais de 20 anos.

JUNO tem uma estrutura complexa. Seu detector principal é cercado por uma grande piscina de água que ajuda a capturar raios cósmicos. A parte principal do detector é um recipiente esférico cheio de um líquido especial que brilha quando os neutrinos interagem com ele. Esse recipiente tem milhares de sensores de luz que conseguem detectar os flashes de luz minúsculos produzidos por essas interações.

Importância do Software no JUNO

Como parte do projeto JUNO, tem uma porção de dados que precisam ser processados. O software que cuida desses dados é conhecido como JUNOSW. Esse software é essencial pra transformar os dados brutos coletados no detector em informações úteis que os cientistas podem analisar.

O desenvolvimento do JUNOSW começou em 2012 e enfrentou muitos desafios. Com o tempo, o software precisava se adaptar a novos requisitos, como acelerar o tempo de construção do software e melhorar a qualidade geral do código.

Ferramentas de Desenvolvimento de Software Inicial

Inicialmente, o JUNOSW foi construído usando ferramentas como Subversion, Trac e CMT. O Subversion era usado pra controle de versão, permitindo que os desenvolvedores acompanhassem mudanças no código. O Trac fornecia uma forma pros desenvolvedores explorarem o código e reportarem problemas, enquanto o CMT era usado pra construir o software.

Mas essas ferramentas iniciais tinham suas limitações. Por exemplo, construir o software inteiro levava muito tempo, o que era frustrante pros desenvolvedores. Além disso, não tinha um processo adequado de revisão de código, o que fazia com que erros passassem despercebidos. Com o crescimento do software, a manutenção ficou mais difícil.

Transição para Ferramentas de Desenvolvimento Modernas

Pra resolver esses problemas, o JUNOSW começou a transição pra ferramentas de software modernas. Essa mudança envolveu várias etapas:

  1. Mudança de CMT pra CMake: O CMake é uma ferramenta mais flexível que ajuda a gerenciar a construção de projetos de software. Ele permite que os desenvolvedores organizem melhor seu código e torna o processo de construção mais rápido e eficiente.

  2. Migração de Subversion pra Git: O Git é um sistema de controle de versão popular que muitos desenvolvedores conhecem. Essa migração envolveu separar o código de arquivos de dados maiores, facilitando a gestão do repositório.

  3. Divisão do Software em Projetos Menores: O grande projeto JUNOSW foi dividido em partes menores e gerenciáveis, facilitando o trabalho dos desenvolvedores em recursos específicos sem precisar lidar com todo o sistema de uma vez.

Melhorias com CMake

Com a mudança pra CMake, várias melhorias foram feitas:

  • O código-fonte e os arquivos de construção foram mantidos separados, evitando mudanças acidentais no código durante o processo de construção.
  • Uma nova estrutura de pacotes foi estabelecida, permitindo uma organização mais clara dos componentes do software.
  • Macros personalizadas foram criadas pra simplificar a construção de vários pacotes, tornando mais fácil pros desenvolvedores compilarem o software.

O CMake também permitiu o uso de expressões de gerador, que ajudaram a gerenciar diferentes configurações de construção pra ambientes online e offline. Isso foi particularmente útil pra projetos que precisavam funcionar em ambas as configurações.

Suporte a Partial Checkouts

Depois de mudar pro Git, os usuários pediram a capacidade de fazer check-out só de partes do software ao invés do projeto inteiro. Esse pedido era comum entre os desenvolvedores que vinham do sistema anterior.

Pra atender a essa necessidade, uma ferramenta chamada git-junoenv foi desenvolvida. Essa ferramenta permite que os usuários especifiquem quais pacotes querem fazer check-out, tornando o processo mais eficiente. Ela também suporta alvos de construção personalizados, permitindo que os desenvolvedores adaptem o processo de construção às suas necessidades específicas.

Integração Contínua com GitLab e Kubernetes

Integração contínua é uma prática que ajuda os desenvolvedores a testarem e implementarem automaticamente seu código. No JUNOSW, isso foi configurado usando GitLab e Kubernetes.

O GitLab é uma plataforma que permite que as equipes gerenciem seu código e colaborem de forma eficaz. O Kubernetes é um sistema que ajuda a rodar aplicações em contêineres, facilitando a gestão de recursos. Ao aproveitar essas tecnologias, o projeto JUNO conseguiu agilizar seu processo de desenvolvimento.

Os runners do GitLab foram configurados pra executar tarefas automaticamente quando mudanças eram feitas no código. Esses runners foram instalados em um cluster Kubernetes gerido por eles mesmos, permitindo uma execução eficiente de trabalhos e fácil escalabilidade quando necessário.

Conquistas Desde a Transição

A transição pra práticas modernas de desenvolvimento de software trouxe grandes resultados. Mais de 160 membros agora colaboram no projeto JUNO através do GitLab. Em menos de um ano, mais de 300 pedidos de merge foram aceitos no repositório de código, e milhares de pipelines automatizadas foram executadas com sucesso.

Essas melhorias ajudaram a agilizar o processo de desenvolvimento de software, facilitando pros cientistas se concentrarem em suas pesquisas ao invés de lidarem com ferramentas ultrapassadas e tempos de construção longos.

Direções Futuras

Olhando pra frente, o projeto JUNO vai continuar a melhorar suas práticas de desenvolvimento de software. Ao adotar ferramentas e técnicas modernas, a colaboração visa melhorar ainda mais a qualidade do código, acelerar o desenvolvimento e promover um ambiente colaborativo pra todos os colaboradores.

À medida que mais cientistas se envolvem e o projeto avança, vai ser crucial manter um ambiente de software flexível e eficaz. Os avanços feitos até agora servem como uma base sólida pro futuro.

Implicações pra Pesquisa Científica

Os avanços no desenvolvimento de software do JUNOSW não só aumentam a eficiência do projeto em si, mas também contribuem pra pesquisas científicas mais amplas. Ao melhorar a forma como os dados são coletados e analisados, os pesquisadores podem obter insights mais precisos sobre o universo.

O foco em ferramentas e práticas modernas provavelmente vai influenciar outras colaborações científicas também, mostrando a importância de usar a tecnologia certa pra apoiar os objetivos de pesquisa.

Através desse compromisso com a inovação, o projeto JUNO está pronto pra fazer contribuições significativas no campo da física de partículas e na nossa compreensão das partículas fundamentais que compõem o universo.

Fonte original

Título: Modern Software Development for JUNO offline software

Resumo: 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.

Autores: Tao Lin

Última atualização: 2023-09-24 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2309.13780

Fonte PDF: https://arxiv.org/pdf/2309.13780

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais do autor

Artigos semelhantes