SPB Git

Repository Public

fr.ts 37.1 KB 592 lines typescript

1import type { en } from "./en";23export const fr: typeof en = {4  langName: "Français",5  otherLang: "English",6  skip: "Aller au contenu",7  nav: {8    infrastructure: "Infrastructure",9    live: "En direct",10    nodes: "Nœuds",11    architecture: "Architecture",12    research: "Recherche",13    benchmarks: "Bancs d'essai",14    gallery: "Galerie",15    access: "Accès",16    menu: "Menu",17    close: "Fermer",18    home: "MacLustr — accueil",19  },20  meta: {21    siteName: "MacLustr — infrastructure de recherche",22    home: {23      title: "MacLustr — un cluster de recherche Apple Silicon personnel",24      description:25        "MacLustr est un cluster de calcul Apple Silicon, propriété personnelle, utilisé pour la recherche en modèles de langue locaux, en apprentissage automatique et en calcul scientifique. Documenté machine par machine, avec de vraies photographies.",26    },27    live: {28      title: "Télémétrie en direct",29      description: "Utilisation en direct du cluster MacLustr, machine par machine : charge du processeur, de la mémoire et du processeur graphique relevée environ toutes les 20 secondes par l'agent de surveillance du cluster, avec une journée d'historique.",30    },31    nodes: {32      title: "Inventaire des nœuds",33      description: "Chaque machine du cluster MacLustr, une fiche par machine : puce, cœurs, mémoire unifiée, stockage, rôle et date de vérification de la fiche.",34    },35    architecture: {36      title: "Architecture technique",37      description: "Comment le cluster MacLustr est câblé et exploité : mémoire unifiée, réseau, stockage, orchestration, service de modèles, et ce qui est distribué ou non.",38    },39    research: {40      title: "Journal de recherche",41      description: "Les recherches menées sur le cluster MacLustr : working papers terminés, expériences en cours et protocoles proposés, avec leurs références.",42    },43    benchmarks: {44      title: "Bancs d'essai et méthodologie",45      description: "Le protocole de mesure des bancs d'essai MacLustr et les champs que chaque observation publiée doit porter. Les résultats ne sont publiés qu'une fois mesurés.",46    },47    gallery: {48      title: "Photographies de l'infrastructure",49      description: "Photographies non retouchées des étagères, des machines, du câblage et du refroidissement de MacLustr.",50    },51    access: {52      title: "Collaboration de recherche et accès",53      description: "Comment proposer une collaboration de recherche ou demander un accès discrétionnaire au cluster MacLustr. Les demandes sont étudiées une à une ; l'accès n'est pas garanti.",54    },55  },56  common: {57    notDocumented: "Non encore documenté",58    verified: "Vérifié",59    source: "Source",60    cores: "cœurs",61    gb: "Go",62    tb: "To",63    viewAll: "Tout voir",64    back: "Retour à l'inventaire",65    lifecycle: {66      active: "Actif",67      offline: "Hors ligne",68      maintenance: "Maintenance",69      planned: "Prévu",70      retired: "Retiré",71      unverified: "Non vérifié",72    },73    roles: {74      gateway: "Passerelle et orchestration",75      services: "Hébergement de services",76      "research-compute": "Calcul de recherche",77      data: "Données de recherche",78      monitoring: "Agent de supervision",79      worker: "Nœud de calcul",80      portable: "Nœud portable",81    },82    families: { "Mac Studio": "Mac Studio", "Mac mini": "Mac mini", "MacBook Pro": "MacBook Pro", "MacBook Air": "MacBook Air", Other: "Autre" },83    status: { completed: "Terminé", ongoing: "En cours", proposed: "Proposé" },84    kinds: { "working-paper": "Working paper", experiment: "Expérience", protocol: "Protocole" },85    themes: {86      "local-llm": "Modèles de langue locaux",87      "apple-silicon": "Apple Silicon et MLX",88      "distributed-computing": "Charges distribuées",89      "scientific-computing": "Calcul scientifique",90      "machine-learning": "Apprentissage automatique",91      benchmarking: "Bancs d'essai reproductibles",92      agentic: "Recherche agentique",93    },94    photoOf: "Photographie",95    takenOn: "Prise le",96  },97  home: {98    eyebrow: "Infrastructure de recherche indépendante",99    title: "La recherche aux limites d'Apple Silicon.",100    lede: "Un cluster de recherche Apple Silicon personnel, construit pour explorer ce que le calcul distribué rend possible.",101    support:102      "MacLustr est une infrastructure de calcul distribué en évolution, au service d'expériences sur les modèles de langue locaux, l'apprentissage automatique et la recherche computationnelle.",103    ctaExplore: "Explorer l'infrastructure",104    ctaAccess: "Collaboration de recherche",105    heroCaption: "Étagère A, photographiée le 7 novembre 2026",106    metrics: {107      heading: "Mesuré, pas estimé",108      note: "Les totaux sont calculés à partir des fiches de nœuds ci-dessous. Les nombres de cœurs et la mémoire sont des caractéristiques matérielles lues sur chaque machine ; ce ne sont pas des résultats de performance.",109      nodes: "machines documentées",110      nodesSub: (active: number) => `${active} ont répondu au dernier relevé`,111      memory: "de mémoire unifiée",112      memorySub: "somme sur des machines distinctes, pas un espace partagé",113      cpu: "cœurs CPU",114      gpu: "cœurs GPU",115      gpuPartial: "Total des cœurs GPU non affiché : une fiche est incomplète",116      network: "lien filaire par machine",117      networkSub: "débit négocié lu sur chaque nœud",118      asOf: "Inventaire vérifié le",119    },120    real: {121      eyebrow: "Fait de vraies machines",122      title: "Trois étagères d'acier, une machine à la fois.",123      body: [124        "J'ai construit MacLustr progressivement, à partir de quelques Mac Studio, en ajoutant des Mac mini et des portables à mesure que les besoins de recherche grandissaient. Il tient sur des étagères industrielles ordinaires, pas dans un centre de données.",125        "Rien sur ce site n'est un rendu ni une mise en scène. Les photographies montrent le cluster tel qu'il fonctionne : des machines étiquetées, des câbles attachés, des ventilateurs qui poussent l'air à travers les tablettes, et des portables qui travaillent écran ouvert.",126      ],127      link: "Voir toutes les photographies",128    },129    topology: {130      eyebrow: "Topologie",131      title: "Comment les machines sont reliées",132      intro: "Une carte simplifiée. Elle regroupe les machines par type et montre des rôles, pas des adresses ; la disposition interne est volontairement omise.",133      hint: "Sélectionnez un bloc pour lire ce qu'il fait.",134      link: "Lire l'architecture technique",135    },136    families: {137      eyebrow: "Matériel",138      title: "Quatre types de machines",139      intro: "Chaque famille mène à ses fiches de nœuds individuelles.",140      memory: "mémoire unifiée",141      link: "Parcourir l'inventaire",142      units: (n: number) => (n === 1 ? "1 machine" : `${n} machines`),143    },144    themes: {145      eyebrow: "Thèmes de recherche",146      title: "À quoi sert le cluster",147      items: [148        { key: "local-llm", state: "active", title: "Modèles de langue locaux", body: "Exécuter et étudier des modèles ouverts sur des machines que je contrôle : expériences d'architecture sur de petits modèles, et inférence sur de plus grands dans la limite de la mémoire d'un seul nœud." },149        { key: "apple-silicon", state: "active", title: "Apple Silicon et MLX", body: "Mesurer ce que la mémoire unifiée et le GPU Apple apportent au calcul numérique, avec MLX pour les modèles et Metal pour des noyaux sur mesure." },150        { key: "distributed-computing", state: "active", title: "Charges distribuées", body: "Des méthodes statistiques conçues pour de nombreuses machines et peu de tours de communication, testées sur de vrais hôtes plutôt que simulées." },151        { key: "scientific-computing", state: "active", title: "Calcul scientifique", body: "De grands calculs par lots en économétrie et en analyse de données, découpés en tâches indépendantes et répartis au prorata des cœurs de chaque nœud." },152        { key: "agentic", state: "active", title: "Recherche agentique", body: "Des agents de programmation autonomes exploitent le cluster par une passerelle unique, et sont eux-mêmes un objet d'étude." },153        { key: "benchmarking", state: "planned", title: "Bancs d'essai reproductibles", body: "Un protocole fixe pour comparer les générations de puces sur des modèles et des invites identiques. Le protocole est publié ; les mesures ne le sont pas encore." },154      ],155      active: "Actif",156      planned: "Prévu",157    },158    experiments: {159      eyebrow: "Travaux choisis",160      title: "Des expériences menées ici",161      intro: "Chaque entrée précise comment le cluster a réellement servi, y compris lorsqu'il s'agissait d'une seule machine.",162      link: "Ouvrir le journal de recherche",163      benchLink: "Méthodologie des bancs d'essai",164      clusterUse: "Usage du cluster",165    },166    gallery: { eyebrow: "En coulisses", title: "Journal photographique", link: "Ouvrir la galerie" },167    access: {168      eyebrow: "Collaboration",169      title: "Vous souhaitez utiliser MacLustr pour la recherche ?",170      body: "MacLustr sert d'abord mes propres recherches. Je suis ouvert à discuter de collaborations et, lorsque la capacité et l'adéquation du projet le permettent, d'un accès pour des chercheurs externes. Les demandes sont étudiées une à une ; l'accès n'est pas garanti.",171      link: "Comment proposer un projet",172    },173  },174  topology: {175    blocks: {176      studio: { title: "Nœuds Mac Studio", body: "Les plus grosses machines. Elles portent les calculs de recherche gourmands en mémoire, les données de recherche et la plupart des services permanents." },177      mini: { title: "Nœuds Mac mini", body: "Des machines plus petites, utilisées comme nœuds de calcul pour les tâches par lots et comme hôtes de services légers." },178      laptop: { title: "Nœuds portables", body: "Des MacBook Pro et des MacBook Air fonctionnent écran ouvert, en Ethernet filaire. Ils participent aux calculs par lots comme n'importe quel nœud." },179      switch: { title: "Ethernet filaire", body: "Chaque machine déclare un lien négocié à 1 GbE. C'est le débit mesuré ; aucune interconnexion plus rapide n'est revendiquée." },180      gateway: { title: "Nœud passerelle", body: "Un Mac Studio est le point d'entrée unique. Il porte le service git privé et l'orchestrateur qui place et répare les charges. Il n'exécute lui-même aucun calcul de recherche." },181      storage: { title: "Stockage en réseau", body: "Deux unités de stockage en réseau conservent les sauvegardes et les fichiers partagés. Les données de travail restent sur le SSD interne de chaque nœud." },182      external: { title: "Passerelle publique (externe)", body: "Un serveur bare-metal hébergé, hors du cluster, termine le TLS des sites publics et relaie les requêtes par un tunnel chiffré. Ce n'est pas un nœud de calcul." },183      internet: { title: "Internet", body: "Les visiteurs atteignent les sites publiés uniquement par la passerelle publique. Aucun nœud n'est exposé directement." },184    },185    legend: { lan: "Réseau filaire local", tunnel: "Tunnel chiffré", boundary: "Périmètre du cluster" },186    count: (n: number) => `${n} machines`,187    alt: "Schéma : les nœuds Mac Studio, Mac mini et portables sont reliés à l'Ethernet filaire, avec un nœud passerelle et le stockage en réseau ; un tunnel chiffré relie le cluster à une passerelle publique externe, tournée vers Internet.",188  },189  nodes: {190    eyebrow: "Inventaire",191    title: "Chaque machine, une fiche",192    intro:193      "Chaque fiche ci-dessous décrit un ordinateur physique. Les caractéristiques ont été lues sur la machine elle-même ; ce qui n'est pas encore relevé est indiqué comme tel plutôt que complété.",194    stats: { machines: "machines", memory: "mémoire unifiée", cpu: "cœurs CPU", verified: "dernière vérification" },195    filters: {196      heading: "Filtrer l'inventaire",197      search: "Chercher par nom ou par puce",198      family: "Famille",199      chip: "Puce",200      memory: "Mémoire minimale",201      role: "Rôle",202      lifecycle: "État",203      rack: "Étagère",204      any: "Tous",205      rackNone: "Non encore documenté",206      rackLabel: (r: string) => `Étagère ${r}`,207      reset: "Réinitialiser les filtres",208      atLeast: (n: number) => `${n} Go ou plus`,209    },210    view: { label: "Affichage", grid: "Grille", table: "Tableau" },211    sort: { label: "Trier par", number: "Numéro de nœud", name: "Nom", family: "Famille", chip: "Puce", cpu: "Cœurs CPU", gpu: "Cœurs GPU", memory: "Mémoire", storage: "Stockage", asc: "croissant", desc: "décroissant" },212    results: (n: number, total: number) => `${n} machines sur ${total}`,213    empty: "Aucune machine ne correspond à ces filtres.",214    cols: { node: "Nœud", family: "Famille", chip: "Puce", cpu: "CPU", gpu: "GPU", memory: "Mémoire", storage: "Stockage", role: "Rôle", status: "État", verified: "Vérifié" },215    statusNote: "« Actif » signifie que la machine a répondu au relevé à la date de vérification. Le point à côté de chaque nom est distinct : c'est le relevé en direct de l'agent de surveillance.",216    timeline: { eyebrow: "Historique", title: "Comment le cluster a évolué", intro: "Des événements datés, tirés de mes propres registres d'exploitation." },217    planned: {218      eyebrow: "Matériel prévu",219      title: "Compté dans aucun total",220      empty: "Aucun matériel prévu ou commandé n'est documenté pour l'instant. Le cas échéant, il sera listé ici, séparément de l'inventaire.",221    },222    detail: {223      eyebrow: "Fiche de nœud",224      specs: "Matériel",225      family: "Famille",226      model: "Identifiant de modèle",227      chip: "Puce",228      cpu: "Cœurs CPU",229      layout: "Répartition des cœurs",230      gpu: "Cœurs GPU",231      memory: "Mémoire unifiée",232      storage: "Stockage interne",233      network: "Lien réseau",234      function: "Fonction de recherche",235      placement: "Emplacement",236      rack: "Étagère",237      shelf: "Tablette",238      added: "Ajouté au cluster",239      provenance: "Provenance",240      status: "État à la date de vérification",241      caveats: "Réserves",242      caveatItems: [243        "Les nombres de cœurs et la mémoire sont des caractéristiques, pas des mesures de performance.",244        "Le stockage est la taille du volume interne déclarée par la machine, en gigaoctets décimaux.",245        "L'état de cette fiche reflète un seul relevé. Les relevés en direct ci-dessus sont distincts et courants.",246      ],247      layoutLegend: "S = cœurs « super », P = cœurs performance, E = cœurs efficience, selon les noms donnés par le système.",248      photo: "Photographie",249      photoNone: "Cette machine n'a pas encore été associée à une position sur les photographies.",250      photoNote: "La machine se trouve sur cette étagère ; la photographie montre l'étagère entière.",251      history: "Historique des charges",252      historyNone: "Aucun historique public des charges n'est consigné pour ce nœud.",253      benchmarks: "Bancs d'essai",254      benchmarksNone: "Aucun banc d'essai n'a été publié pour ce nœud.",255      prev: "Nœud précédent",256      next: "Nœud suivant",257    },258  },259  architecture: {260    eyebrow: "Architecture",261    title: "Un cluster d'ordinateurs distincts",262    intro:263      "MacLustr est un ensemble de machines Apple Silicon indépendantes sur un même réseau filaire, coordonnées par logiciel. Cette page décrit ce que cela permet, et ce que cela ne permet pas.",264    diagramTitle: "Disposition logique",265    diagramNote: "Le schéma est volontairement abstrait : il montre des rôles et des périmètres, pas des adresses ni le câblage physique.",266    sections: [267      {268        id: "unified-memory",269        title: "La mémoire unifiée, une machine à la fois",270        body: [271          "Sur Apple Silicon, le CPU et le GPU partagent un même espace mémoire. Un modèle qui tient dans la mémoire unifiée d'un nœud est chargé une seule fois et utilisé par le GPU sans copie vers une carte graphique séparée. C'est pourquoi un Mac Studio de 96 Go peut accueillir des modèles qui ne tiendraient pas sur la plupart des GPU grand public.",272          "Cet espace s'arrête aux limites de la machine. Relier des ordinateurs par Ethernet ne fusionne pas leur mémoire unifiée en un espace d'adressage GPU partagé, quel que soit le débit du lien. Le total de mémoire affiché sur ce site est une somme sur des machines distinctes : le plus grand modèle que le cluster peut charger est borné par son plus gros nœud, pas par le total.",273        ],274      },275      {276        id: "workloads",277        title: "Trois types de charges",278        body: [279          "Indépendantes : l'essentiel du travail s'exécute sur un seul nœud du début à la fin, qu'il s'agisse d'entraîner un petit modèle, d'estimer un modèle statistique ou de servir une application. Le cluster agit alors comme de nombreux ordinateurs utilisables en même temps.",280          "Réparties entre les nœuds : un grand lot est découpé en tâches indépendantes, distribuées au prorata du nombre de cœurs de chaque nœud. Les nœuds ne se parlent pas pendant l'exécution ; les résultats sont rassemblés à la fin. La plupart des calculs multi-nœuds sont de ce type.",281          "Réellement distribuées : dans quelques expériences, les nœuds échangent des messages pendant le calcul, par exemple pour une estimation du maximum de vraisemblance distribuée en un petit nombre de tours de communication par TCP. Ce sont des protocoles de recherche précis, pas une capacité générale.",282          "Aucun modèle n'a été réparti entre plusieurs machines ici. Je ne revendique ni découpage de modèle ni inférence distribuée, et l'entraînement au sens usuel s'est limité à des modèles qui tiennent sur un seul nœud.",283        ],284      },285      {286        id: "network",287        title: "Réseau",288        body: [289          "Chaque machine ayant déclaré un lien filaire négocie à 1 GbE (1000BASE-T). J'indique le débit mesuré plutôt que la capacité nominale d'un commutateur ou d'un adaptateur. Aucune interconnexion plus rapide n'est en service sur les nœuds, et aucune n'est revendiquée.",290          "À 1 GbE, le réseau est le goulot d'étranglement de tout ce qui déplace des tenseurs entre machines : un jeton généré coûte peu à transmettre, mais pas des activations ni les poids d'un modèle. C'est la raison principale pour laquelle le cluster privilégie les tâches indépendantes et réparties.",291        ],292      },293      {294        id: "storage",295        title: "Stockage",296        body: [297          "Les données de travail résident sur le SSD interne de chaque nœud, de 245 Go à 995 Go par machine d'après les machines elles-mêmes. Les grands jeux de données sont conservés sur le nœud qui les traite, pour éviter de les lire par le réseau.",298          "Deux unités de stockage en réseau assurent les sauvegardes et les fichiers partagés. Elles ne servent pas de système de fichiers parallèle.",299        ],300      },301      {302        id: "orchestration",303        title: "Orchestration et plan de contrôle",304        body: [305          "Un Mac Studio sert de passerelle. Il héberge un service git privé et un orchestrateur que j'ai écrit : celui-ci relève la mémoire libre, la charge, le disque et les environnements installés de chaque nœud, note les candidats, place la charge sur le meilleur, vérifie sa santé et consigne où elle tourne.",306          "Une boucle de réparation s'exécute toutes les quelques minutes et relance ce qui manque après une interruption. Les machines sont configurées pour ouvrir leur session et reprendre seules après une coupure de courant ; cela a été testé involontairement en septembre 2026, lorsque seize machines ont redémarré ensemble et sont revenues sans intervention.",307          "Ceci décrit la construction du système. Ce n'est pas un engagement de disponibilité : le cluster est une installation de recherche qui peut être arrêtée, recâblée ou réaffectée à tout moment.",308        ],309      },310      {311        id: "serving",312        title: "Service de modèles",313        body: [314          "Les modèles ouverts sont servis avec MLX sur un seul nœud, lancés pour la durée d'une expérience. Un point d'accès permanent, compatible OpenAI, qui servait plusieurs modèles a existé auparavant et a été démantelé en juin 2026 ; il figure dans l'historique, pas parmi les services actuels.",315          "Aucun point d'accès d'inférence public n'est offert, et aucune adresse de nœud n'est joignable depuis Internet.",316        ],317      },318      {319        id: "external",320        title: "Périmètre externe",321        body: [322          "Un serveur bare-metal hébergé se trouve hors du cluster. Il termine le TLS des sites publics et relaie les requêtes vers le bon nœud par un tunnel chiffré. Il n'effectue aucun calcul de recherche et n'est pas compté dans l'inventaire.",323          "Le site que vous lisez est servi ainsi : par un nœud du cluster, derrière cette passerelle.",324        ],325      },326      {327        id: "power-cooling",328        title: "Alimentation et refroidissement",329        body: [330          "Les machines reposent sur des étagères d'acier ouvertes, à température ambiante, avec des ventilateurs qui font monter l'air à travers les tablettes, comme le montrent les photographies. Il n'y a pas d'installation de refroidissement dédiée.",331          "La puissance consommée, les températures et l'énergie par tâche n'ont pas encore été mesurées de façon systématique. D'ici là, ce site ne publie aucun chiffre de puissance ni d'efficacité.",332        ],333      },334    ],335    diagram: {336      nodes: "Nœuds de calcul",337      nodesSub: "machines indépendantes, chacune avec sa mémoire unifiée",338      gateway: "Nœud passerelle",339      gatewaySub: "service git · orchestrateur · boucle de réparation",340      monitor: "Agent de supervision",341      monitorSub: "sondes en lecture seule",342      storage: "Stockage en réseau",343      storageSub: "sauvegardes · fichiers partagés",344      switch: "Ethernet filaire · 1 GbE mesuré",345      serving: "Service de modèles",346      servingSub: "MLX, par expérience, sur un nœud",347      external: "Passerelle publique",348      externalSub: "TLS · proxy inverse · hors du cluster",349      internet: "Internet",350      tunnel: "tunnel chiffré",351      boundary: "Périmètre du cluster",352      alt: "Schéma en couches. À l'intérieur du périmètre du cluster : les nœuds de calcul, un nœud passerelle avec l'orchestrateur, un agent de supervision et le stockage en réseau sont tous reliés à l'Ethernet filaire mesuré à 1 GbE ; le service de modèles s'exécute sur un seul nœud. À l'extérieur, une passerelle publique est reliée au cluster par un tunnel chiffré et tournée vers Internet.",353    },354  },355  research: {356    eyebrow: "Journal de recherche",357    title: "Ce qui est fait, ce qui est en cours, ce qui est proposé",358    intro:359      "Les entrées sont listées avec leur état. Les travaux terminés renvoient à leur manuscrit ; les travaux en cours ou proposés n'avancent aucun résultat. Pour chaque entrée, j'indique comment le cluster a servi.",360    filterAll: "Tous",361    clusterUse: "Usage du cluster",362    reference: "Référence",363    noReference: "Pas encore de manuscrit public.",364    read: "Lire l'article",365    stack: {366      title: "Pile logicielle",367      intro: "Ce avec quoi les expériences ci-dessus sont construites.",368      items: [369        { k: "Modèles", v: "MLX et mlx-lm pour les modèles de langue sur GPU Apple ; PyTorch pour l'entraînement classique" },370        { k: "Calcul numérique", v: "C++20 avec Metal pour des noyaux GPU sur mesure ; pile scientifique Python pour l'analyse" },371        { k: "Données", v: "Fichiers en colonnes sur SSD local, PostgreSQL sur le nœud qui en a besoin" },372        { k: "Exploitation", v: "Un orchestrateur maison, un gestionnaire de processus par nœud, git comme source de vérité" },373      ],374    },375    ownership: {376      title: "Propriété et affiliation",377      body: "MacLustr est une propriété personnelle, financée et exploitée à titre personnel. Il n'appartient à aucune université ni autre institution, et n'est ni financé ni cautionné par l'une d'elles. Les articles listés ici portent leurs propres mentions d'auteur et de collection.",378    },379  },380  benchmarks: {381    eyebrow: "Bancs d'essai",382    title: "Des preuves reproductibles",383    intro: "Un banc d'essai n'est utile que si quelqu'un d'autre peut le refaire. Cette page expose le protocole ; les résultats n'y sont ajoutés qu'une fois mesurés selon celui-ci.",384    forthcoming: {385      label: "Résultats à venir",386      title: "Aucune observation de banc d'essai n'est encore publiée.",387      body: "Je préfère un tableau vide à un tableau approximatif. Les graphiques de cette page sont construits et testés sur des données d'exemple en développement, et restent masqués tant qu'il n'existe pas de mesures réelles.",388    },389    resultsTitle: "Observations publiées",390    plannedTitle: "Mesures prévues",391    plannedItems: [392      "Vitesse de génération en jetons par seconde",393      "Délai avant le premier jeton",394      "Débit sous requêtes concurrentes",395      "Mémoire maximale et pression mémoire",396      "Puissance consommée et énergie par tâche, une fois un wattmètre en place",397      "Débit réseau entre nœuds",398      "Temps d'exécution des charges par lots",399    ],400    protocolTitle: "Ce que chaque observation doit porter",401    protocolIntro: "Le modèle de données rejette toute observation à laquelle il manque l'un de ces champs.",402    fields: [403      { k: "Matériel", v: "Identifiant de la fiche de nœud dans l'inventaire, donc puce, mémoire et répartition des cœurs" },404      { k: "Modèle", v: "Identifiant du modèle et version ou révision exacte" },405      { k: "Quantification", v: "Nombre de bits et schéma" },406      { k: "Environnement", v: "Environnement d'exécution et version, par exemple la version de MLX" },407      { k: "Longueurs", v: "Longueur de l'invite et de la sortie, en jetons" },408      { k: "Concurrence", v: "Nombre de requêtes simultanées" },409      { k: "Méthode", v: "Comment la valeur a été mesurée, y compris l'échauffement et ce qui tournait par ailleurs" },410      { k: "Date", v: "Jour de la mesure" },411      { k: "Répétitions", v: "Nombre d'exécutions" },412      { k: "Incertitude", v: "Dispersion entre les exécutions" },413      { k: "Données brutes", v: "Référence aux enregistrements bruts" },414    ],415    limitsTitle: "Limites de la comparaison",416    limits: [417      "Deux quantifications d'un même modèle sont deux modèles différents. Elles ne sont jamais placées sur un même axe sans le dire.",418      "Un nœud qui héberge aussi des services n'est pas un banc de test propre. Les mesures sont prises machine au repos, ou la charge est indiquée.",419      "Portables et ordinateurs de bureau ne brident pas de la même façon sous charge soutenue ; des essais courts avantagent donc les portables.",420      "Des résultats obtenus avec des versions différentes de l'environnement d'exécution ne sont pas comparables, sauf si la version est la variable étudiée.",421      "Des caractéristiques comme le nombre de cœurs ne sont pas des résultats. L'inventaire liste les premières ; seule cette page listera les seconds.",422    ],423    elsewhere: {424      title: "Des mesures déjà présentes dans des articles",425      body: "Certains working papers du journal de recherche contiennent leurs propres résultats mesurés, avec leurs propres méthodes, par exemple des seuils de rentabilité du GPU face au CPU pour des noyaux numériques. Ils sont cités là-bas plutôt que repris ici, car ils n'ont pas été produits selon ce protocole.",426      link: "Ouvrir le journal de recherche",427    },428    chartAlt: (metric: string) => `Diagramme à barres : ${metric} par nœud. Les mêmes valeurs figurent dans le tableau qui suit.`,429    table: { node: "Nœud", model: "Modèle", quant: "Quantification", runtime: "Environnement", value: "Valeur", runs: "Exécutions", date: "Date" },430  },431  gallery: {432    eyebrow: "Galerie",433    title: "L'infrastructure telle qu'elle est",434    intro:435      "Quatre photographies du cluster, que j'ai prises moi-même. Elles sont recadrées pour la mise en page seulement : aucune retouche, aucune image générée. Elles montrent trois étagères un même jour et ne constituent pas un recensement ; c'est l'inventaire, non les images, qui fait foi pour le nombre de machines.",436    open: "Agrandir la photographie",437    close: "Fermer",438    prev: "Photographie précédente",439    next: "Photographie suivante",440    counter: (i: number, n: number) => `${i} sur ${n}`,441    note: "Les données de localisation et les autres métadonnées intégrées ont été retirées des fichiers publiés.",442  },443  access: {444    eyebrow: "Accès",445    title: "Vous souhaitez utiliser MacLustr pour la recherche ?",446    lede: "MacLustr sert d'abord mes propres recherches. Je suis ouvert à discuter de collaborations et, lorsque la capacité et l'adéquation du projet le permettent, d'un accès pour des chercheurs externes. Les demandes sont étudiées une à une ; l'accès n'est pas garanti.",447    kindsTitle: "Sur quoi une demande peut porter",448    kinds: [449      { t: "Expériences de reproductibilité", d: "Refaire un résultat publié sur un matériel différent." },450      { t: "Inférence de modèles de langue", d: "Des modèles ouverts qui tiennent dans la mémoire d'un seul nœud." },451      { t: "Comparaison de matériel", d: "La même charge à travers les générations de puces, du M1 Max au M6." },452      { t: "Calcul distribué", d: "Des méthodes qui exigent de nombreux hôtes réels plutôt qu'une simulation." },453      { t: "Collaboration universitaire", d: "Un projet commun où le cluster est un ingrédient parmi d'autres." },454    ],455    termsTitle: "Avant tout accès",456    terms: [457      "La gouvernance des données, la sécurité, les licences et le calendrier sont discutés et convenus au préalable.",458      "Il n'y a ni compte, ni libre-service, ni paiement. Ce n'est pas un service commercial.",459      "La capacité est limitée et partagée avec mes propres travaux ; un projet peut être refusé ou reporté.",460      "La disponibilité n'est jamais garantie : le cluster peut être arrêté ou reconfiguré à tout moment.",461    ],462    contactTitle: "Contact",463    contactBody: "Le plus simple est de m'écrire directement.",464    form: {465      title: "Formulaire de demande",466      modeMail: "Ce formulaire n'envoie rien depuis ce site. Il prépare un courriel dans votre propre application de messagerie, adressé à moi, que vous pouvez relire et envoyer vous-même.",467      modeServer: "Ce formulaire m'envoie votre demande par courriel. Rien n'est conservé sur ce site.",468      name: "Nom",469      affiliation: "Affiliation institutionnelle",470      email: "Courriel",471      projectTitle: "Titre du projet",472      researchQuestion: "Question de recherche",473      researchQuestionHint: "Ce que vous cherchez à établir, en quelques phrases.",474      compute: "Besoins de calcul",475      computeHint: "Modèle, mémoire, environnement d'exécution, durée prévue.",476      dates: "Dates proposées",477      dataConstraints: "Contraintes de confidentialité et de données",478      dataConstraintsHint: "N'incluez pas de données confidentielles ou personnelles dans cette demande.",479      expectedOutputs: "Résultats attendus",480      optional: "facultatif",481      website: "Laissez ce champ vide",482      submitMail: "Préparer le courriel",483      submitServer: "Envoyer la demande",484      sending: "Envoi…",485      errors: {486        summary: "Veuillez corriger les champs signalés.",487        name: "Indiquez votre nom.",488        email: "Indiquez une adresse de courriel valide.",489        projectTitle: "Indiquez un titre de projet.",490        researchQuestion: "Décrivez la question de recherche en 20 caractères au moins.",491        compute: "Décrivez le calcul dont vous avez besoin.",492        server: "La demande n'a pas pu être envoyée. Écrivez-moi plutôt par courriel.",493        rate: "Trop de demandes. Réessayez plus tard ou écrivez-moi par courriel.",494      },495      mailReady: "Votre application de messagerie devrait afficher un message préparé. Il n'a pas été envoyé : relisez-le et envoyez-le depuis celle-ci.",496      mailFallback: "Si rien ne s'est ouvert, copiez le texte ci-dessous dans un courriel adressé à",497      sent: "Votre demande a été envoyée par courriel. Je réponds à chaque demande, mais pas toujours rapidement.",498      subject: (title: string) => `Demande de recherche MacLustr — ${title}`,499    },500    privacy: {501      title: "Confidentialité",502      body: "Ce site ne dépose aucun témoin de suivi et n'exécute aucun outil d'analyse d'audience. Les demandes me parviennent par courriel uniquement et ne sont conservées que le temps de l'échange.",503    },504  },505  live: {506    eyebrow: "Télémétrie en direct",507    title: "Le cluster, en ce moment",508    intro: "Utilisation de chaque machine, relevée environ toutes les 20 secondes par l'agent de surveillance du cluster. Ce sont des relevés d'exploitation, pas des résultats de bancs d'essai.",509    badge: "En direct",510    updated: (s: number) => (s < 3 ? "mis à jour à l'instant" : `mis à jour il y a ${s} s`),511    loading: "Lecture du cluster…",512    pill: (online: number, total: number, cpu: string) => `${online}/${total} en ligne · CPU ${cpu}`,513    unavailable: {514      short: "Télémétrie indisponible",515      title: "La télémétrie en direct est indisponible pour le moment",516      body: "L'agent de surveillance n'a pas répondu. L'inventaire reste valide, et les relevés en direct reviennent d'eux-mêmes dès que l'agent répond de nouveau.",517    },518    kpi: {519      online: "Machines en ligne",520      onlineSub: (off: number) => (off === 0 ? "toutes les machines ont répondu" : off === 1 ? "1 machine ne répond pas" : `${off} machines ne répondent pas`),521      cpu: "CPU utilisé",522      cpuSub: (cores: number) => `pondéré sur ${cores} cœurs`,523      memory: "Mémoire utilisée",524      memorySub: (used: string, total: string) => `${used} Go sur ${total}`,525      gpu: "GPU utilisé",526      gpuSub: "pondéré par les cœurs GPU",527      network: "Réseau, entrant",528      networkSub: (out: string) => `${out} sortant, toutes machines`,529    },530    chart: {531      title: "Utilisation du cluster",532      unit: "Pourcentage utilisé, pondéré par la capacité de chaque machine",533      window: "Période",534      w1h: "1 heure",535      w6h: "6 heures",536      w24h: "24 heures",537      cpu: "CPU",538      memory: "Mémoire",539      gpu: "GPU",540      empty: "Aucun historique n'est enregistré pour cette période.",541      loading: "Chargement de l'historique…",542      table: "Afficher les données en tableau",543      time: "Heure",544      alt: (range: string) => `Graphique linéaire de l'utilisation du CPU, de la mémoire et du GPU, en pourcentage, sur la période : ${range}. Les mêmes données sont offertes en tableau sous le graphique.`,545    },546    nodes: {547      title: "Machine par machine",548      sort: "Trier par",549      sortNumber: "Numéro",550      filter: "Afficher",551      all: "Toutes",552      laptops: "Portables",553      online: "En ligne",554      offline: "Hors ligne",555      noReading: "Aucun relevé",556      offlineBody: "Ne répond pas à l'agent de surveillance.",557      load: "Charge",558      uptime: "En marche",559      thermal: "État thermique",560      spark: "CPU sur la dernière heure",561      battery: "Batterie",562    },563    node: {564      title: "Relevés en direct",565      history: "Historique d'utilisation",566      netIn: "Réseau entrant",567      netOut: "Réseau sortant",568      offlineBody: "Cette machine ne répond pas à l'agent de surveillance pour le moment. Sa fiche matérielle ci-dessous n'est pas touchée.",569    },570    home: {571      eyebrow: "En direct",572      title: "Ce que font les machines maintenant",573      intro: "Lu auprès de l'agent de surveillance du cluster et rafraîchi tant que cette page est ouverte.",574      link: "Ouvrir le tableau de bord en direct",575      wall: "Charge CPU, une case par machine",576      wallNote: "Chaque case est une machine, numérotée comme dans l'inventaire. Choisissez une case pour ouvrir sa fiche.",577    },578    note: "Les relevés viennent de l'agent de surveillance du cluster et passent par le serveur de ce site, qui ne publie que des chiffres d'utilisation : aucune adresse ni information sur les processus ou les utilisateurs ne sort du cluster.",579    thermal: { nominal: "Nominal", fair: "Modéré", serious: "Élevé", critical: "Critique" },580    units: { kbs: "Ko/s", mbs: "Mo/s", d: "j", h: "h", min: "min" },581  },582  footer: {583    purpose: "MacLustr est une installation de calcul de recherche détenue et exploitée à titre personnel. Ce site la documente ; il n'en vend ni n'en garantit l'accès.",584    disclaimer:585      "Ce n'est pas un service commercial. L'installation n'appartient à aucune institution et n'est ni financée ni cautionnée par l'une d'elles. Apple, Mac, Mac Studio, Mac mini, MacBook Pro et MacBook Air sont des marques d'Apple Inc. ; ce site n'est ni affilié à Apple ni commandité par Apple.",586    contact: "Contact",587    updated: "Dernière mise à jour",588    sections: "Sections",589  },590  notFound: { title: "Page introuvable", body: "Cette page n'existe pas.", link: "Retour à l'aperçu" },591};592
Files main
Menu

Theme