wiki:intern/PUDGApr2011

Ausgangsversion für alle Änderungen

Grundlegende Version für alles weitere ist benchmark.sc11.

Roadmap

  1. [Mathias] Benchmark SC'11 Tag setzen, interner Release PEPC 2.0 PEPC-2.0_internal
    • Strip-Down, Physik-Kram rausnehmen
    • Output übernehmen
    • Memwatch raus
    • Sortierer und tree_domains aufräumen (z.B. choose_sort weg)
    • Von den Frontends gemeinsam genutzte Module/Routinen in einem Tools-Unterverzeichnis ablegen
    • LOCADDRESS() durch MPI_GET_ADDRESS() austauschen
    • unterstrich-aliase bei c-code mittels "#pragma weak slsort_keys_ = slsort_keys" realisieren wird auf OSX nicht unterstützt, jetzt durch umtauschen der unterstrichenen und nicht unterstrichenen version geloest
    • copy changes from source:/tags/benchmark-1.5.1

Basis für alle weiteren Änderungen und Entwicklungen ist PEPC-2.0_internal im repository-trunk.

  1. [Lukas & Mathias] ScaFaCos-Version aktualisieren, FMM-Interface übernehmen
  2. [Robert] Vortex-Code zurück in das SVN, wenigstens per external
  3. [Alle :-)] Untenstehendes Konzept intialisierensource:branches/newstruct
  4. [Paul] Änderungen in den Trunk übernehmen ("Retrunking"), PEPC-B aktualisieren
  5. [Alle] Dokumentation, konsistentes Doxygen #30
  6. [Lukas & Paul] Externe Zugriffe auf trunk/tarball ermöglichen via Anmeldung?, Bugtracking-System aufsetzen #31
  7. [Lukas] JuBE-Verifikation für SC'11 bzw. Version 2.0 #32
  8. [Lukas] Benchmark-Daten und -Ergebnisse auf benchmark/results #33
  9. Modifikationen Version 2.x
    1. [Helge] Hilbertkurve
    2. [Helge] Branchabschätzung für die Arraygrößen nutzen
    3. [Mathias] Teilchenzahl-abhängige Allokationen innerhalb von fields, nicht innerhalb von setup
    4. [Mathias] sl_pepcparts entfernen
    5. [Lukas] Makefile parallelisieren via -j
    6. [Mathias & Lukas] Alternativen zu sqrt evaluieren: libmass etc. (siehe BGP-Performance) Einfaches ersetzen von -lm durch lmass bringt scheinbar nichts: Beispiel mit 2,000,000 Teilchen auf 32 Nodes JUGENE (Laufzeit in sec. fuer die jeweils ersten drei Zeitschritte):
libm: 21.4807771000 19.8667861000 19.8749619094
libmass: 21.4707042624 19.8570766153 19.8580398953
libmassv: 21.6495978106 19.8648933776 19.8754953612
libmass+qarch450d: 21.7186051141 19.9697114624 19.9818944247
libm+450d: 21.7355234271 19.9969321188 20.0118417459 #34
  1. [Lukas] Erstellung der Unmenge an diagnostic files per flag abschaltbar machen (diag_XX.dat, timings_XX.dat, load_XX.dat)
  2. Baumaufbau unabhaengig von gueltigen Labels machen - derzeit darf kein label == 0 sein
  3. ? serial tests with jube #32
  4. ? test for working MPI_IN_PLACE (during runtime) #35
  5. [Mathias] test for valid pointers during runtime (aka "ifort-problem") - behoben mit ifort 12.1 (jetzt auch auf JuRoPa)
  6. ? integer*8 bzw. *4 sowie Äquivalente für Real durch die kind=...-Notation ersetzen, denn die Stern-Notation ist in Fortran 2003 nicht mehr erlaubt #36
  7. Zuruecksortieren der Teilchen mittels Flag deaktivierbar machen
  8. [Mathias] Keine Kopien aller Daten in fields anlegen

Features auf Halde

  1. Reduced trees
  2. Memwatch

Gedanken, Konzepte und Visionen Version 3.0

  • Neukonzeptionierung der Branches, Fortsetzen des Helge-Ansatzes (Ausquetschen vorhandener Informationen)
  • Speicherstatistik reintegrieren, Memwatc portabilisieren
  • Weitere Hybridisierung, z.B. Baumaufbau, Sortierer (OpenMP + Pthreads im Konflikt?)
  • [Robert] Kontakt zu PKDGRAV, Ideen-Austausch möglich
  • PEPC-Datenstrukturen source:branches/newstruct
    • [Lukas & Andreas] SPH: Was fehlt PEPC2 für SPH? Nachbarschaftssuche/-liste etc.
    • [Robert] Was fehlt PEPC2 für Vortex?
      • Generischer Datentyp für Partikel, u.a. mit
        • Koordinaten, Schlüssel, pid, label (?)
        • "Physikalische" Größen, z.B. Ladung, Masse, Vorticity, Geschwindigkeit
        • "Technische" Größen, z.B. Kernradius, Volumen
        • Zeitintegrator-Variablen: Historie für AB- oder RK-Methoden
      • Generischer Datentyp für Multipol-Momente bzw. Baumeigenschaften (mehrdimensionale Entwicklung, flexible Ordnung)
      • Verschiedene MACs
      • Verschiedene Summationsroutinen (z.B. mit Komponenten algebraischer Kerne)
      • Flexible workload-Definition (Schwerpunkt Kommunikation oder Rechnung)
    • [Lukas & Mathias] Hashtable-Struktur
      • Schleifen über die gesamte Hashtable vermeiden (z.B. pack) #9
    • Restrukturierung der maxleaf/maxtwig-arrays (warum wechselt eigentlich das Verhältnis) #37
  • Branchlets #4
    • M Teilchen pro leaf (variabel halten)
    • Interaktion im walk zwischen branchlets, nicht mit Teilchen
    • Restrukturierung des Baumaufbaus nötig zur Bestimmung der neuen leafs

Bekannte Probleme (evtl. für die Doku)

Last modified 12 years ago Last modified on 03/22/12 11:06:33

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.