a user level multi threaded particle simulator
Download
Skip this Video
Download Presentation
A user level multi-threaded Particle simulator

Loading in 2 Seconds...

play fullscreen
1 / 22

A user level multi-threaded Particle simulator - PowerPoint PPT Presentation


  • 52 Views
  • Uploaded on

A user level multi-threaded Particle simulator. Supervisor: Joe Cordina Observer: Kurt Debattista. APT. Advanced practical task serve the purpose of allowing students to design, implement and document a medium to large project Student initiative Understand task + design

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' A user level multi-threaded Particle simulator' - liluye


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
a user level multi threaded particle simulator

A user level multi-threaded Particle simulator

Supervisor: Joe Cordina

Observer: Kurt Debattista

slide2
APT
  • Advanced practical task serve the purpose of allowing students to design, implement and document a medium to large project
    • Student initiative
    • Understand task + design
    • Research into possible solutions
    • Work alone under supervisor’s guidance

User LevelMulti-threaded Particle simulator

overview
Overview
  • Designing and implementing a user-level multi-threaded particle-in-a-box simulator.

User LevelMulti-threaded Particle simulator

literature
Literature
  • Operating Systems II and Concurrent and Distributed Systems Slides
  • Any basic mathematics textbook
  • Any basic physics textbook

User LevelMulti-threaded Particle simulator

assessment
Assessment
  • 50% Design/Implementation
  • 30% Documentation/Inception Report
  • 20% Presentation/Interview

User LevelMulti-threaded Particle simulator

main issues of apt
Main issues of APT
  • Implementation
    • Learn how to use Mesh
    • Provide a multi-threaded particle simulator
    • 2D view of particles
    • Provide example scenarios
    • Calculate basic physics constants
    • Benchmark your algorithms

User LevelMulti-threaded Particle simulator

slide7
Mesh
  • Mesh is an advanced very fast user-level multi-threaded library written in C for CERN (Linux).
  • It is user-level and thus we will try not to make use of system calls as much as possible.
  • Memory requirements concerns will be of major focus.

User LevelMulti-threaded Particle simulator

mesh cont
Mesh (cont.)
  • Your main header files are Mesh.h and Scheduler.h
  • Main function provided by

void Main(Thread* p, int argc, char** argv);

void Exit(int code);

  • A large selection of function calls are available to allow thread manipulation
  • Note that threads can also have a priority

User LevelMulti-threaded Particle simulator

mesh cont1
Mesh (cont.)
  • #define Thread_Constructor(F,X...)Scheduler_ThreadConstructor((ThreadMain)(F),X)
  • void Thread_Destructor(Thread*);
  • void Thread_Stop(void);
  • void Thread_Exit(void);
  • void Thread_NewPriority(int priority);
  • void Thread_SetPriority(Thread* p,int priority);
  • int Thread_GetPriority(void);
  • void Thread_Yield(void);
  • void Thread_Preempt(void);
  • void Thread_Join(Thread* process,...);
  • void Thread_Spawn(Thread*,int priority);
  • void Thread_Run(Thread*);
  • void Thread_Runs(Thread* process,...);
  • void Thread_Par(Thread* process,...);
  • void Thread_PriPar(Thread* process,int priority,...);
  • void Thread_SleepUntil(RealTime t);
  • void Thread_Sleep(RealTime t);
  • Thread* Scheduler_ThreadConstructor(ThreadMain main,int stack_size,int narguments,...);

User LevelMulti-threaded Particle simulator

particle simulator
Particle Simulator
  • Using the threads package you will simulate the behavior of physical particles in a box.
  • Threads are ideal where each thread performs small amounts of calculation
  • Thus define box dimensions and let the particles loose in it starting from a random position.

User LevelMulti-threaded Particle simulator

particle simulator cont
Particle Simulator (cont.)
  • Particles in physics have a well defined behavior
  • Assume that all particles are point particles
  • When they collide with a wall their angle of reflection equals angle of incidence.
  • Each particle has a mass and a velocity (speed with direction)

User LevelMulti-threaded Particle simulator

particle simulator cont1
Particle Simulator (cont.)
  • Motion is governed by

sx = x + v * t * cos a

sy = y + v * t * sin a

where sx is distance in x direction

sy is distance in y direction

v is velocity

t is time

a is the direction angle

User LevelMulti-threaded Particle simulator

particle simulator cont2
Particle Simulator (cont.)
  • Particles can also collide with each other
  • Yet particles have also momentum and physics say that initial momentum should equal final momentum in a collision.
  • Equations given with handouts
  • Be careful when calculating theta to get final angle
  • One of the main task is an efficient collision detection between the particles

User LevelMulti-threaded Particle simulator

2d view of particles
2D view of particles
  • You will be using the svgalib

man svgalib will tell you all

  • Compile using gcc –lvga

vga_init();

vga_setmode(G640x480x256);

  • Then you can use
    • int vga_drawpixel(int x, int y);

User LevelMulti-threaded Particle simulator

2d view of particles1
2D view of particles
  • The display should be synchronized to 60 frames a second (Bonus).
  • Make your program decrease the frames per second depending on the load in the computer.
  • For timing you can use the RealTime Library.

User LevelMulti-threaded Particle simulator

basic physics constants
Basic Physics constants
  • You can calculate the average speed of the particles, the speed distribution and the velocity distribution.
  • You can calculate the temperature visible produced by your particles in real-time and you can compare it to the ideal one.
  • The mean Kinetic Energy has to remain constant in a closed box
  • When numbers are very large

<K> =(mvx2) / N

User LevelMulti-threaded Particle simulator

bonus material
Bonus Material
  • Construct multiple scenarios
    • Multiple boxes next to each other where each border can store part of the energy of one collision and then pass it on to the next particle that hits it
    • A leaky box, where if a particle has energy above a certain value, it will escape away
    • 3D equations and visualization of the system
    • Hot walls which transfer constant energy to the particles but particles which have larger energy will still escape
    • Dampening effect in the box
    • Others you might think of or discussed with me
    • Optimisation techniques on the algorithms
    • Producing graphs of physics constants with time

User LevelMulti-threaded Particle simulator

benchmarking
Benchmarking
  • Use the RealTime library to be able to benchmark the efficiency of your algorithms.
  • This will give you time delays in the order of s.

User LevelMulti-threaded Particle simulator

documentation
Documentation
  • Inception report (Friday 1st March)
    • Analysis/Design
    • Work plan
  • Report
    • Detailed analysis of problem
    • Discussion of solution (+ others considered)
    • Detailed description of data structures and algorithms used

User LevelMulti-threaded Particle simulator

presentation
Presentation
  • 15 minute presentation
    • Material Content
    • Knowledge of subject
    • Clarity
  • Interview
    • Answer questions related to APT

User LevelMulti-threaded Particle simulator

interaction
Interaction
  • Expect to report to supervisor every other week:Friday
  • Who cannot attend must mail in progress report + work in progress demo
  • First meeting Friday 1st March

User LevelMulti-threaded Particle simulator

the end
The end
  • All the best!
  • Good luck!
  • Work hard!

User LevelMulti-threaded Particle simulator

ad