-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHW2.TODO
More file actions
29 lines (28 loc) · 2.35 KB
/
HW2.TODO
File metadata and controls
29 lines (28 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Week1 Feb 20 - Feb 27:
✔ Test all trivial implementations on Hopper @done (15-02-20 14:46)
✔ Understand the elementary implementation @done (15-02-20 23:35)
☐ Implement the O(n) serial algorithm
✔ Define a struct "bin" that has the following attribute: @done (15-02-20 23:32)
1. x, y -> The coordinate of its left bottom corner
2. An array or list of particles that are in the bin
3. Method -> outOfBound that determines if a particle is out of the bin
4. Method -> delete to delete a certain particle
5. Method -> add to add a particle in the list
✔ Create a list of "bin"s, just like a matrix, we know that length of the bin = cutoff, so we know the grid @done (15-02-20 23:32)
One advantage of this "matrix" is that finding neighbors of bins is quite easy
✔ Add all the particles to the list of bins, and do sanity check @done (15-02-20 23:35)
What if instead of adding real particles, we add the index of particles? I think this is definitely a better strategy
✔ Instead of iterating through the particles, we iterate through the bins and the particles in the bins @done (15-02-22 00:20)
1.In this step for each bin we only apply forces from neighboring bins
2.For each bin, we iterate through the list using "iterator" and apply force using "applyForceFromBin" function defined in common.cpp
✔ The hard part is moving the particles @done (15-02-22 00:20)
Whenever we move a particle, we have to determine its new "bin", then delete it from the original bin, add it to the new one
This also means that the data structure we use for the list of particles should support insert and delete efficiently, i.e STL -> Set
✔ One problem is that it seems most particles are not interacting @done (15-02-25 18:22)
✔ I have changed the implementation of bins so that each bin holds a set of indices of particles @done (15-03-01 00:39)
✔ There is segmentation fault after some iterations and I dont know how to solve them. @done (15-03-01 00:39)
✔ Implement the OpenMP algorithm(details need to be confirmed) @done (15-03-01 00:39)
Week 2 Feb 28 - Mar 6:
✔ The Openmp codes tested on Hopper with default 16 threads, running on 10000 particles, its about twice as fast as the serial algorithm @done (15-03-03 16:26)
☐ Implement the MPI algorithm
☐ Write the report