swarmflocking
play

SwarmFlocking 64-149 Praktikum Parallele Programmierung Fabian - PowerPoint PPT Presentation

SwarmFlocking 64-149 Praktikum Parallele Programmierung Fabian Besner, Dominik Lohmann, Jakob Rieck {2besner,2lohmann,2rieck}@informatik.uni-hamburg.de github.com/dominiklohmann/PAPO14-SwarmFlocking Flocking Behavior Alignment Seperation


  1. 
 SwarmFlocking 64-149 Praktikum Parallele Programmierung Fabian Besner, Dominik Lohmann, Jakob Rieck {2besner,2lohmann,2rieck}@informatik.uni-hamburg.de github.com/dominiklohmann/PAPO14-SwarmFlocking

  2. Flocking Behavior Alignment Seperation Cohesion

  3. Parallelization • Cut the world into vertical areas and distribute the swarm into partial swarms • Each partial swarm is aware of its possibly relevant neighbors • Neighbors communicate their local updates after each step • Root also calculates the predator movement and therefore needs to have everything

  4. Optimization position velocity Boid 32 Byte x y z _ x y z _ MPI_BOID 24 Byte (25% less) x y z x y z MPI_BOID_THIN 12 Byte (62,5% less) x y z • SSE(2) instructions for 75% better performance in Vector.h • Custom Datatype for MPI to reduce communication overhead • Algorithm optimizations to only view boids in a neighbored PartialSwarm so boid density actually influences the performance

  5. Command Line Interface % ./bin/simulation --help Options: -h [ --help ] Print this help message -b [ --boid-count ] arg Number of boids to simulate -p [ --predator-count ] arg Number of predators to simulate -s [ --steps ] arg Number of steps to simulate -o [ --output ] arg Specify an output file % ./bin/visualisation --help Options: -h [ --help ] Print this help message -i [ --input ] arg input file source --fps arg Set a custom number of frames to be displayed each second (defaults to 30) -s [ --single-stepping ] Control execution of the visualisation by pressing 'space' --stdin use stdin as source (overwrites --input) -b [ --boid-count ] arg Number of boids per frame -p [ --predator-count ] arg Number of predators per frame

  6. Performance Report mpirun -np 16 time simulation -s 100 -b x -p 0 -o /dev/null 10.000 local cluster 100 1 0 75000 150000 225000 300000

  7. Performance Report mpirun -np x time simulation -s 100 -b 65536 -p 0 -o /dev/null 1.000 750 500 250 0 0 75 150 225 300

  8. Implementation Problems • Outdated versions of g++, libstdc++, boost and most notably MPI on cluster coupled with local development and testing • Trial and error development with OpenGL • Indeterministic results (due to optimizations) 
 make testing a lot harder

  9. Demo

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend