You are on page 1of 16

Biocity – APP 2010

Catangiu Adrian
Iordache Sergiu
Voicu Alexandru
Agenda
3 Introducere
4 “Probleme initiale”
5 Directii
6 Scripturi
7 Profiling
8 Paralelizare
9 Optimizare seriala
11 Vizualizare rezultate

2
Introducere
• Proiect relativ mic, open source
• Simulare biologica in timp discret a
comportamentului unor populatii
biologice
• Foloseste o multime de valori
random pentru a simula
comportamentul
• Construit pentru Linux

3
“Probleme initiale”
• Program neparalelizat
• Makefile pentru compilare simpla
• Mod de afisare functional pentru
harti mici si indivizi putini

4
Directii
• Am urmat trei directii principale:
– Setup & profiling & paralelizare
– Optimizare seriala
– Vizualizare rezultate
• Fiecare membru s-a ocupat de o
parte

5
Scripturi
• Makefile – compilatoare multiple
• Script-uri:
– Parametrii rulare
– Submit pe grid
– Masurare timp -> gnuplot

6
Profiling
• Profiling in Sun Studio
– Problema afisare corecta
– Dadea date concludente oricum
• Profiling in VTune Analyzer
– Probleme platforme suportate
– Masina virtuala
– Rulare partiala
– Confirma datele din Sun Studio

7
Paralelizare
• Potential paralelizare relativ mic
• C++
• Tentativa paralelizare OpenMP
– Teoretic ok, OpenMP 3
– Intel – ICC – nu
– Sun – CC – partial

8
Optimizare seriala (1)
• Structura date
– este folosit “list” din C++ (STL)
– abordarea alternativa: o matrice (< eficient)
• simulare foloseste coordonate double
– nu conteaza dimensiune lume, ci populatie
• Identificare bottleneck
– distanta intre 2 organisme
– O (N^2)
– doar organismele ce urmeaza in lista

9
Optimizare seriala (2)
• Spargerea spatiului in zone mai mici
• Fiecare organism apartine cel putin unei zone
• Distanta intre organisme din aceeasi zona
– 3x3 => 9 zone => speed-up 9 (teoretic)
– practic undeva pe la 8 (overhead)
• Benzi intre zone (dim = 2 * range)
– organismele apartin ambelor zone
• NR_ZONE liste + optimizarea initiala pe fiecare

10
Vizualizare rezultate -
Cerinte
• Colectare + vizualizare date
• Real time vs la final
• Cat mai general
– folosit ceva deja existent
– server-client
– sa foloseasca cat mai bine GRID-ul
• Sa poata fi folosit si pe viitor

11
Vizualizare rezultate -
ParaView
• Open-source
• Vizualizare + analizare date
• Mai multe versiuni
– Standalone
– Server-Client
– Multiserver-Client (GRID)
• Permite animatii (VTK)
• Permite colectare date in paralel (PVTK)

12
Vizualizare rezultate -
VTK
• Comes in many flavors
– Text
– Binary
– XML (PVTK)
– Poligoane, Structured/Unstructured Grid
• Se integreaza foarte bine cu ParaView
• Format simplu, dar parser complicat
• Fiserul scris “de mana”

13
Concluzii / Rezultate
• Am reusit sa facem ce ne-am propus:
– Proiect Biocity -> paralelizat / optimizat
-> vizualizat date

14
Intrebari

• Pentru mai multe detalii despre


prezentare / bibliografie:
– alexandru.voicu@cti.pub.ro

15
Links
• http://sourceforge.net/projects/biocity/
• https://ncit-cluster.grid.pub.ro/trac/APP2009/wiki/Biocity%3
• https://svn-batch.grid.pub.ro/svn/APP2009/proiecte/biocity
• http://www.paraview.org/
• http://www.vtk.org/

16