The One Billion Row Challenge : un défi de programmation Java

Par:
fredericmazue

mar, 16/01/2024 - 13:56

The One Billion Row Challenge est un défi de programmation. Le One Billion Row Challenge (1BRC) est une exploration amusante de jusqu'où Java moderne peut être poussé pour agréger un milliard de lignes à partir d'un fichier texte. Saisissez tous vos fils de discussion (virtuels), contactez SIMD, optimisez votre GC ou utilisez toute autre astuce et créez l'implémentation la plus rapide pour résoudre cette tâche !

Le fichier texte contient des valeurs de température pour une gamme de stations météorologiques. Chaque ligne correspond à une mesure au format 

<string: station name>;<double: measurement>

la valeur de mesure comportant exactement un chiffre fractionnaire.

Ce qui suit montre dix lignes à titre d'exemple :

Hamburg;12.0
Bulawayo;8.9
Palembang;38.8
St. John's;15.2
Cracow;12.6
Bridgetown;26.9
Istanbul;6.2
Roseau;34.4
Conakry;31.2
Istanbul;23.0

La tâche consiste à écrire un programme Java qui lit le fichier, calcule les valeurs de température minimale, moyenne et maximale par station météo et émet les résultats sur la sortie standard comme ceci (c'est-à-dire triés par ordre alphabétique par nom de station et les valeurs de résultat par station dans le format <min>/<mean>/<max>, arrondi à un chiffre fractionnaire) :

{Abha=-23.0/18.0/59.2, Abidjan=-16.2/26.0/67.3, Abéché=-10.0/29.4/69.0, Accra=-10.1/26.4/66.4, Addis Ababa=-23.7/16.0/67.0, Adelaide=-27.8/17.3/58.5, ...}

Soumettez votre implémentation avant le 31 janvier 2024 et faites partie du classement !

Ce défi connaît un grand succès. Aussi les organisateurs demandent aux participants de ne propiser de nouvelles soumissions que s'ils pensent que leur code s'exécutera en moins de 10 secondes.

Toutes les informations sont sur GitHub.