Difference between revisions of "ParallelCode"

From CUC3
Jump to navigation Jump to search
import>Jss43
 
import>Jss43
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
I am currently in the process of parallelising the CPMD-NECI code. Our approach is:
+
I am currently in the process of parallelising the CPMD-NECI code. Our approach is to note that integrals are the bottleneck, and so we just parallelise the integrals. The bulk of the work is already done for us in CPMD: the wavefunctions and fourier mesh are already distributed over processors, and the FFTs and sums over G-vectors are automatically done in parallel.
 
* Integrals are the bottleneck.
 
* Parallelise the integrals. This is already (mainly) done in CPMD: the wavefunctions and fourier mesh are already distributed over processors.
 
 
--[[User:jss43|james]] 19:10, 18 February 2008 (GMT)
 
--[[User:jss43|james]] 19:10, 18 February 2008 (GMT)
   
 
= Status =
 
= Status =
   
  +
The integral engines in CPMD are now fully parallel, tested and merged back to trunk.
I have (mainly) made the required changes to the integral routines. The only thing to deal with is the shifted integrals, but I think I know how to do this without any further communication between processors. We can calculate the exchange energy, hartree energy and KS determinant in parallel. Tardis is pleasingly fast.
 
--[[User:jss43|james]] 19:10, 18 February 2008 (GMT)
+
--[[User:jss43|james]] 18:17, 2 May 2008 (BST)
   
 
= To do =
 
= To do =
 
Fix problem with shifting co-densities during FFT.
 
--[[User:jss43|james]] 19:10, 18 February 2008 (GMT)
 
   
 
Distribute the UMatCache (and TMAT?).
 
Distribute the UMatCache (and TMAT?).
Line 21: Line 15:
 
= Parallelising NECI =
 
= Parallelising NECI =
   
  +
See discussion here: [[NECI Parallelization]].
Once this is done, we might be close to having NECI completely parallel. Is there anything else we'd need to do?
 
--[[User:jss43|james]] 19:10, 18 February 2008 (GMT)
 

Latest revision as of 17:18, 2 May 2008

I am currently in the process of parallelising the CPMD-NECI code. Our approach is to note that integrals are the bottleneck, and so we just parallelise the integrals. The bulk of the work is already done for us in CPMD: the wavefunctions and fourier mesh are already distributed over processors, and the FFTs and sums over G-vectors are automatically done in parallel. --james 19:10, 18 February 2008 (GMT)

Status

The integral engines in CPMD are now fully parallel, tested and merged back to trunk. --james 18:17, 2 May 2008 (BST)

To do

Distribute the UMatCache (and TMAT?). The best way to accomplish this might be to split up the calculation into chunks, and have each processor store (only) the information required for its chunk. How should we go about this? Or is it better to split it up on a node-wise basis? --james 19:10, 18 February 2008 (GMT)

Parallelising NECI

See discussion here: NECI Parallelization.