Self Scheduling Algorithms for Trajectories Calculations: test particles, field lines, stream lines, etc. :

Physical problem:

In the last few decades extensive research has been carried out to understand the effects of space and astrophysical plasma turbulence through various models, most of them being numerical in nature as analytical solutions occur rarely. The observed turbulence displays many properties, which are expected of both hydrodynamic and magnetic hydrodynamic origin. Solar wind turbulence couples the lower corona plasma and the earth's magnetosphere that has a distinct magnetic field. The turbulence helps us in understanding the transport of energetic charged particles throughout the solar terrestrial environment. As of today, very little seems to have been done to describe these fluctuations intuitively, or in terms of field line random walk. Our aim in this project is to examine a transverse fluctuation model and focus on the description of the wandering and diffusion of magnetic surfaces to examine the magnetic field geometry through simulations carried by parallel programming.

Field lines and flux tubes are examples of magnetic surfaces - smooth surfaces in space tangential to the local magnetic field B. Assume that a slab of plasma is permeated at each point with a uniform magnetic field B_0 in z-direction and this is superimposed with a magnetic fluctuation b which is transverse to the uniform magnetic field. To be specific, we can decompose the fluctuation into a combination of a slab counterpart in z-direction and another 2D Counterpart in x-y plane. The total magnetic field must satisfy the plasma equations, which are known. In principle, one has to integrate three ordinary differential equations which govern the evolution of magnetic field lines. We apply here a Runga-Kutta fourth order technique to perform this integration.

Plan of Investigation and Potential Strategies:

We can imagine our slab divided into a few million magnetic surfaces each transverse to z-direction. First, we can divide all of the points on an initial surface S=0 into a few groups and each group is handled by one slave processor. Let each of these slave processors does its calculation separately and the master processor collects the results and stores the data for tracing of magnetic fields. The integration proceeds from the initial magnetic surface S =0 with given positions on it to the nearby magnetic surface S+ S0 using Runga-Kutta method. Since the magnetic field lines are mutually exclusive and do not affect each other in any way, our model can be easily converted to a parallel program by dividing the field lines over multiple processors.

There are a few complications here which we want to address. It may happen that one processor can take much longer time to solve a particular field trajectory and hence the whole computation requires load-balancing features. In order to perform the integration, we need the magnetic field at each point (x,y,z) in our physical model. We get this whole field from a subroutine which apply Fast Fourier Transformation (FFT) and the grid size is about 512 points each in the x- and y-directions and several million points in z-direction. There are very good reasons to consider several million cross-sections in z-direction and at least a few hundred points in both x- and y- directions. We need this huge data for good resolution, which is required, because the system passes through several stages, each of which requires specific treatment and good resolution as well. It seems that each processor should have access to a huge memory to be able to call the subroutine at the beginning of the calculation.

As discussed above, this problem can be solved by embarrassingly parallel algorithms. However, the unpredictable behavior of field lines may make any static balancing strategy fail. We need to balance the loads dynamically. The other difficulty for this problem is the intense amount of data. To make good physical sense, the slab we are considering has at least 512*512*1,000,000 points. As input, the magnetic field B has a value at each of these points. Either compute B at runtime or pre compute it for referring. In other words we may have to determine the optimal magnetic field sub-length to be provided to every processor, such that we strike a balance between, at one extreme, having idle processors, and at the other, excessive communication between the master and its slave processors. Huge amount of memory or second memory are needed. The I/O problem is significant. The output of the computing problem will be 512*512 field lines, each of them is at least 1,000,000 units long. How to efficiently and correctly save them will be our big concern.