I would appreciate if any one could give me some advice on how well-suited GPU Computing is to solve our problem.
Somewhat simplified it could be stated as:
Given a velocity field: V(x,y,z),
And N particles with the starting positions: (x0i,y0i,z0i), i=1â€¦N;
Find the trajectory of each particle and write it to file: TRAJi.txt, i=1â€¦N.
I was thinking of having V(x,y,z) in shared memory and one thread per particle:
global void traceOneParticle(float *V, float *x0, float *y0, float *z0);
The tracing of each particle is computing expensive; it requires numerical integration,
some if else tests, multiplication of a vector with a small matrix etc.
New memory may have to be allocated dynamically within the thread.
Is this a problem?
How about the writing of results to file;
Is it possible to have each thread writing to its own file descriptor in parallell?
As a rough estimate assume I have 1000 particles. The velocity modell requires 1GB and each particle requires 8MB.
This should not pose a problem on a Tesla S 1070, since it has 16GB dedicated memory?
Or is there a limit on how much memory can be allocated within each thread?
Thanks in advance for any answers!
Andreas Werner Paulsen