10.12.2012 Views

Κεφάλαιο 1 - Nemertes

Κεφάλαιο 1 - Nemertes

Κεφάλαιο 1 - Nemertes

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ΚΕΦΑΛΑΙΟ 6 ο<br />

{<br />

if (cnt_timeSteps % (simulationParameters.laser.getTD_steps() +<br />

simulationParameters.laser.getTP_steps()) < simulationParameters.laser.getTP_steps())<br />

{<br />

MDFunctions.irradiateParticle(particle);<br />

MDFunctions.removalCriterion(particle);<br />

}<br />

}<br />

private Particle particle;<br />

public Object call() throws Exception<br />

{<br />

run();<br />

return null;<br />

}<br />

}<br />

public class MovementJob implements Callable<br />

{<br />

public MovementJob(Particle p)<br />

{<br />

this.particle = p;<br />

}<br />

public void run()<br />

{<br />

MDFunctions.verletAlgorithm(particle, particlesProxy.getParticlesIterator());<br />

}<br />

private Particle particle;<br />

public Object call() throws Exception<br />

{<br />

run();<br />

return null;<br />

}<br />

}<br />

Οι κλάσεις αυτές αντιπροσωπεύουν τη φάση του Laser και τη φάση της κίνησης. Ανάλογα<br />

µε τον αριθµό των νηµάτων επιλέγονται να εργαστούν παράλληλα, χρησιµοποιούνται δύο ή<br />

περισσότερες κάθε φορά. Με αυτό τον τρόπο, εκµεταλλεύονται οι δυνατότητες του<br />

µοντέρνου υλικού, για παράδειγµα υπολογιστικά συστήµατα που έχουν δύο επεξεργαστές ή<br />

δύο πυρήνες. Γίνεται χρήση του concurrency framework της Java για την παράλληλη<br />

εκτέλεση τους. (java.util.concurrency).<br />

Όταν συµπληρωθεί ο χρόνος του πειράµατος, το σύστηµα περνάει στη φάση finalState.<br />

private void doFinalState()<br />

{<br />

229

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!