DPAD

Van DPC wiki

Ga naar: navigatie, zoek

DPAD Distributed Particle Accelerator Design

Inhoud

[bewerk] Algemeen

DPAD is een distributed computing project dat zich bezig houdt met het simuleren van een deeltjesversneller. De home page van het project is te vinden op http://www.stephenbrooks.org/muon1/.

[bewerk] Het doel

Het experiment waar dit project aan meewerkt heet de Neutrino Factory. Dit project zal zo rond het jaar 2015 worden opgezet. Het onderzoek zal zich in hoofdzaak richten op het onderzoek naar neutrino's. Neutrino's zijn fundamentele deeltjes. Dat wil zeggen dat de wetenschap er (tot op heden) vanuit gaat dat ze niet opgebouwd zijn uit nog kleinere deeltjes. Het onderzoek richt zich op de vraag of neutrino's onderweg van type kunnen veranderen (want er zijn drie typen), en of ze een massa hebben. Als dit het geval blijkt, willen de wetenschappers natuurlijk weten wat die massa precies is.

Het project zal dit onderzoek naar de neutrino's verrichten door op verschillende plaatsen op aarde meetstations te bouwen en vervolgens van het ene naar het andere station neutrino's af te schieten. Dit lijkt onmogelijk, maar bedenk dat een neutrino een bijzonder deeltje is: het is zo klein dat de kans nihil is dat een neutrino ergens tegenop botst. Het gaat dus gewoon langs de kern van een atoom, zo tussen de elektronen door. Iedere seconde gaan er miljarden neutrino's door je lichaam. Maar je merkt er niets van, simpelweg omdat je niet wordt geraakt!

[bewerk] De reden

Wetenschappers willen allereerst meer over dit deeltje te weten komen omdat het zo'n beetje het meest voorkomende deeltje in het heelal is. Verder zou het hebben van een massa kunnen betekenen dat het heelal uiteindelijk weer in elkaar valt (implodeert). Ook kan deze informatie gebruikt worden om een beter beeld te krijgen over het ontstaan van het universum. De "hoofdmachine" die voor dit project gebouwd gaat worden, heeft meerdere doelen. Dat mag ook wel, want de kosten worden geraamd op ten minste 1,9 miljard dollar. Naast het neutrino-onderzoek zal er ook gekeken worden of radioactief afval kan worden geneutraliseerd door de stof om te zetten in stabiele elementen.

[bewerk] De methode

Het experiment gaat als volgt in zijn werk. Allereerst worden er protonen op een plaat afgevuurd. Dit is waar de client begint met rekenen. Dit afvuren van een proton zal ook bij het onderzoek naar radioactief afval worden gebruikt. Als een proton de plaat raakt, komen er pionen vrij, welke vervallen naar muonen. De muonen gaan naar een speciale opslagring waar ze uiteen zullen vallen in elektronen en neutrino's. Dit is het belangrijkste van het hele experiment. De pionen moeten zo goed mogelijk gebundeld worden terwijl ze in muonen vervallen. Hoe beter dit lukt, hoe beter de rest van het proces zal verlopen. Als dit proces niet efficiënt genoeg verloopt, zal er geen subsidie voor het project vrijkomen. De mensen die aan het project meedoen hebben echter de verwachte efficiëntie al verdubbeld. De kans is dus groot dat de machine gebouwd gaat worden. Om de zoveel tijd zit het project in een fase waarin geen betere resultaten meer worden geboekt. Daarom wordt er bijna continu gewerkt aan een andere client/simulatie, die dan een ander deel van het vervalproces zal gaan onderzoeken, of die een geheel andere techniek van pionclustering zal gaan optimaliseren.

[bewerk] De organisatie

Dit project wordt geheel geleid door een wetenschapper aan de universiteit van Oxford: Stephen Brooks. Hij rapporteert periodiek aan de leiding van het Neutrino Factory experiment (tijdens symposia). Uiteindelijk is hij met dit project slechts een van de vele mensen die aan het experiment meewerken.

[bewerk] Meedoen

Het is vrij eenvoudig om aan dit project mee te doen. Doe het volgende voor een correcte installatie van de Windows client, en voor een goede aanmelding bij de Dutch Power Cows:

Download de client (rar) of de client (zip)

Pak de bestanden uit naar de gewenste map. Bijvoorbeeld C:\Program Files\DPAD\ Maak een nieuw bestand aan met de naam user.txt, en zet daarin op de eerste regel je naam zoals je die in de statistieken wilt zien verschijnen. Zorg ervoor dat er het woord [DPC] in staat! Dus bijvoorbeeld [DPC] Jantje. Spaties zijn geoorloofd. Als je nu het programma in de grafische modus wilt starten, gebruik je muon1.exe. Verder is er ook een command line versie (muon1_cmdline.bat) en een verborgen versie (muon1_background.exe). Deze is in principe het snelst. Je kan er nu eventueel voor zorgen dat de client automatisch wordt gestart bij het opstarten van de computer. Zie daarvoor Automatisch opstarten.

[bewerk] Systeemeisen

De client heeft op het moment wat problemen op Windows 9x computers. Waarschijnlijk geldt dit probleem alleen voor AMD processoren. Verder stelt de client geen zware hardware-eisen. Er is naast een Windows-client geen andere beschikbaar. Wanneer je DPAD onder Linux wilt draaien zul je hiervoor Wine moeten gebruiken.


[bewerk] De client

De client wacht standaard totdat er 100kB aan data is gegenereerd voordat deze resultaten verstuurt. Dit kan soms lang duren. Daarom kun je met het programma manualsend.exe al je resultaten ook versturen (mits results.txt tenminste 10kB groot is. Ook manualsend verstuurt niets beneden die grootte). Je staat dan waarschijnlijk binnen een paar uur, maar normaal gesproken ten minste binnen een dag in de statistieken.

Als je wilt zien hoeveel results je hebt gegenereerd sinds de laatste keer dat je ze hebt verstuurd, kun je in results.txt kijken. Dat geeft je een globaal idee. Er is ook het programma viewresults.exe, waarmee je wat meer informatie kan krijgen. Druk daarin op F om je results te zien. Zie Monitoring voor meer informatie hierover.

[SG]Herb heeft een klein programmaatje gemaakt waarmee je kan berekenen hoeveel punten de resultaten in results.txt in de stats zullen opleveren. Download deze tool hier en gebruik het om eventueel je punten te tellen voordat je de resultaten verzend. Zo kun je controleren of alles goed is gegaan. Het programma zelf spreekt voor zich.

Ook heeft [SG]Herb een programmaatje geschreven waarmee je tegelijkertijd meerdere clients kunt beheren. dit programmaatje is hier te downloaden.

[bewerk] De resultaten

De resultaten worden in results.dat en results.txt opgeslagen en ziet er ongeveer zo uit:

tantalumrodz=500;tantalumrodr=189;s1l=999;s1f=999;.....;s28f=999;d28l=000;sfinall=998;sfinalf=999;#runs=5; 9.249522 (1640.4 Mpts) [v4.32b] {52B18C32} <SolenoidsTo15cm> Op de eerste regel staan alle parameters die samen de gesimuleerde configuratie voorstellen. Je ziet telkens een woord gevolgd door een is-teken en daarachter een getal tussen 000 en 999, afgesloten door een puntkomma. Ieder van deze parameters stelt één magneet voor. De waarden 000 tot 999 stellen de sterkte van de magneet voor. Niet ieder result heeft evenveel parameters. Het kan zijn dat er achter de lijst met parameters nog #runs=X; staat. Dit houdt in dat het een resultaat betreft dat X maal gesimuleerd is. Zie Quarantined results voor meer informatie hierover.

Op de tweede regel staat als eerste waarde het percentage van de deeltjes dat het parcours succesvol heeft afgelegd. Als dit een configuratie betreft die meerdere malen gesimuleerd is, dan is dit percentage het gemiddelde van de gevonden percentages bij de afzonderlijke simulaties. Hoe hoger dit percentage, hoe beter. Het tweede getal is het aantal Mpts van de simulatie. Bij een gerecheckte configuratie is dit het totaal van de Mpts van alle simulaties. Mpts staat voor Millions of particle-timesteps. Deze waarde is een indicatie voor de hoeveelheid rekenwerk die nodig was om tot het resultaat te komen. Dit is daarom ook de maatstaf die in de statistieken gehanteerd wordt om users te beoordelen.

Op de tweede regel staat verder de versie van de client vermeld waarmee het resultaat is berekend. Daarna volgt een checksum om het resultaat te controleren. Dit is om technische fouten en eventuele cheaters op te sporen. Tot slot wordt het type simulatie vermeld.

Quarantined results Sommige resultaten worden in quarantaine geplaatst. Dit houdt in dat het resultaat niet naar results.dat en results.txt wordt geschreven, maar naar queue.txt. Vervolgens wordt dezelfde configuratie nog een aantal maal gesimuleerd. Het aantal rechecks is afhankelijk van wat is ingesteld in config.txt (zie Configuratie). Na iedere recheck wordt het berekende percentage aan queue.txt toegevoegd en het aantal Mpts bij het reeds aanwezige getal opgeteld. Het opnieuw simuleren van configuraties is dus absoluut niet nadelig voor je score in de stats, je krijgt gewoon heel veel punten voor het gerecheckte resultaat. Als het ingestelde aantal rechecks is gedaan, worden de gevonden percentages gemiddeld en wordt het resultaat in results.dat en results.txt opgeslagen. Het bestand queue.txt wordt dan automatisch weer verwijderd. Vervolgens begint de client aan een nieuwe simulatie.

Verzenden van resultaten Het verzenden van resultaten gaat in principe vanzelf als je 100kB bij elkaar hebt berekend (tenzij je die optie hebt uitgeschakeld, zie Configuratie). Je kan je resultaten ook handmatig verzenden met het programma manualsend.exe. Hiervoor hoef je geen 100kB aan data te hebben, maar er is wel een minimum van 10kB. Een results.txt kleiner dan 10kB kun je dus enkel versturen door deze met een andere results.txt te mergen (let op de linebreaks!!!) of de file handmatig te uploaden. Deze documentatie gaat daar verder niet op in.

Bij het verzenden van de resultaten wordt het bestand results.txt verzonden. Als de transmissie geslaagd is wordt results.txt vervolgens verwijderd.

De eerste keer dat er resultaten verzonden worden, wordt er het bestand servers.csv gedownload en opgeslagen in de directory van het programma. Hierin staat een lijst met FTP servers waarnaar de resultaten kunnen worden verzonden. Er zal een willekeurige server uit deze lijst worden gekozen. Als de gekozen server offline is, dan wordt er een andere server geprobeerd.

De meeste FTP-servers die het project gebruikt, worden niet door Stephen Brooks (de projectleider, zie De organisatie) zelf beheerd. Dat gebeurt door vrijwilligers die ook aan het project meedoen. Mocht je continu problemen ondervinden met een bepaalde server of de eigenaar van een bepaalde server niet vertrouwen, dan kun je het het adres van de desbetreffende server uit servers.csv verwijderen. Maak het bestand daarna wel alleen-lezen, want anders update de client servers.csv weer, en heeft het dus niets geholpen. Stephen houdt ook een serveroverzicht bij waar je de huidige lijst van servers kunt zien en kunt checken of een bepaalde FTP-server wel of niet up is. Verder kun je bij cgmuonftp.homelinux.org zien waar je bestanden gebleven zijn als je toevallig naar die server hebt geflushed. Ook heeft zeonx.mega-reviews.com deze optie. De andere FTP-servers bieden deze service niet.

[bewerk] Het samenstellen van een configuratie

Er zijn een aantal manieren waarop de client een configuratie samenstelt die vervolgens gesimuleerd wordt. Hier staan er een paar kort beschreven om je een beeld te geven. De volledige lijst staat bij de optie TrialType in de Configuratie. Schrijver dezes weet ook niet precies wat de verschillen zijn.

Random: alle magneetinstellingen worden willekeurig gekozen. Meestal levert dit een zeer slecht resultaat op. Deze methode wordt vooral in het begin veel gebruikt en komt later, als er betere resultaten zijn gevonden nog sporadisch voor. Crossover: de configuraties van twee resultaten worden gecombineerd. Interpolate: idem, maar op een andere manier. Mutate: een eerder resultaat wordt enigszins aangepast. De voorgaande resultaten haalt de client uit results.dat. De configuraties in deze file bepalen dan ook in grote mate in welke richting toekomstige configuraties zullen evolueren. Meestal gebruikt de client een of twee van de beste resultaten uit de results.dat.

Handmatig een configuratie maken Je kan ook je eigen configuratie samenstellen. Dit kan handig zijn als je bepaalde parameterwaarden naar het uiterste wil verschuiven (dus bijvoorbeeld 050 naar 000 en 956 naar 999). Je kan dat op de volgende manier doen:

Sluit de client af. Verwijder, als deze bestaat, het bestand queue.txt Verwijder, als deze bestaat, het juiste *.sav bestand (zie Hoe het werkt, of verwijder gewoon alle *.sav bestanden). Maak een nieuw plain-text bestand aan met de naam queue.txt Open results.dat en kopieër hieruit het result dat je wilt aanpassen. Plak de tekst in queue.txt Vervang de tweede regel door de tekst TEST<SimType> Hierbij moet je in plaats van SimType natuurlijk het simulatietype kiezen dat hoort bij de result die je uit results.dat hebt gehaald. Vergewis je er van dat de volgende tekst niet aan het eind van de eerste regel staat:

  1. runs=X;

Waar X een getal is. Pas nu de gewenste parameters op de eerste regel aan. Zorg ervoor dat je telkens getallen van drie cijfers hebt, dus 000 i.p.v. 0. Sla queue.txt op en sluit het bestand af. Start de client weer. Als je alles goed hebt gedaan, zou de command line versie 'Rechecking quarantined result' moeten weergeven. De background versie zegt uiteraard niets. Na de eerste run, wanneer succesvol, zal het woord TEST in queue.txt vervangen zijn door relevante data zoals bij een normale result.

[bewerk] De stats

Je vind user statistieken op de voorpagina van het project. Deze statistieken zijn niet altijd even duidelijk. De stats van Stephen worden als de server normaal werkt elk uur bijgewerkt, meestal is dat een paar minuten over het hele uur.

Waardering Bij de berekening van het aantal punten wordt gekeken naar het aantal Mpts dat voor een resultaat staat. Hoe meer dit er zijn, hoe langer je computer er over heeft gerekend en hoe hoger de beloning dus is. Deze puntentelling is ingesteld om ervoor te zorgen dat mensen met goede resulaten (hoge percentages) geen voordeel meer hebben ten opzichte van mensen met minder goede resultaten, zoals dat vroeger wel het geval was. Mensen die gebruik maken van een topNNN file (zie De bestNNN.txt en sampleNNN.txt bestanden) hebben daardoor geen echte voorsprong meer. Het aantal Mpts dat voor een resultaat staat kun je zo in je results.txt bekijken (zie evt. Hoe het werkt voor een uitleg). Voor het optellen van al die waarden (mocht je dat willen voordat je je resultaten verstuurt) kun je het beste een tool gebruiken zoals besproken bij Monitoring.

[bewerk] Megaflushen

Je kan bij dit project heel goed Megaflushen. Je moet daarvoor in config.txt aangeven dat de client niet automatisch flushed bij 100kB (zie Configuratie).

[bewerk] Interessante links

Nederlandstalige site met uitleg waar we voor aan het rekenen zijn.

Engelstalige site over de muon detectie

9 webcams die gericht zijn op de bouw van de Large Hadron Collider

Nederlandstalige site met uitleg en plaatjes

Aspecten/acties
Persoonlijke instellingen