[Octopus-devel] Problem with PFFT
Micael Oliveira
micael at teor.fis.uc.pt
Wed Jun 8 21:31:18 WEST 2011
Hi Joseba,
It's probably completely unrelated, but here we are having a similar
problem, although not in the PFFT: for some parallel runs, depending on
the numbers of cpus, the mesh, and the parallelization strategy used,
sometimes the code segfaults without a clear reason. As far as I could
determine, this is a bug in some versions of ifort. Since you seem
stuck, I thought you might find the information useful.
Cheers,
Micael
On 06/08/2011 06:13 PM, Joseba Alberdi wrote:
> Hi Xavier,
>
> the MPI parameters I couldn't say 100% sure that are the correct ones,
> what I can say instead is that they are working in other machines and in
> corvo are exactly the same. I can also say that with this code the
> execution is exactly the same as with FFTW.
>
> Thanks for the answer
> Joseba
>
> az., 2011.eko ekaren 08a 18:54(e)an, Xavier Andrade(e)k idatzi zuen:
>> Hi Joseba,
>>
>> Sometimes FFT library need to work with arrays that are larger. In any
>> case, the call to MPI_Gatherv is quirte ugly, are you sure all the
>> parameters are right?
>>
>> Xavier
>>
>> PS: MPI does not use threads, but processes.
>>
>> On Wed, Jun 8, 2011 at 12:42 PM, Joseba Alberdi<joseba.alberdi at ehu.es>
>> wrote:
>>> Dear all,
>>>
>>> I have a problem with the implementation of the PFFT library. In some
>>> cases
>>> the oct-test_mpi fails, depending in the inp file and also in the
>>> number of
>>> nodes. Also it depends in the machine.
>>>
>>> For example it is failing with the bellow inp file in corvo, running
>>> with 8
>>> mpi threads (but is working in my desktop computer, and also in corvo
>>> with
>>> 1,2,3,5 NO with 4,6,8).
>>>
>>> The failure is in the pfft.F90 file in the line 492 (call
>>> MPI_Gatherv) in
>>> the last iteration (when ii=local_sizes(6)). I checked all the
>>> parameters
>>> and are exactly the same as in my machine.
>>>
>>> If I change the line 490 of pfft.F90, from
>>> SAFE_ALLOCATE(dta_in_tmp(pfft%n(1),pfft%n(2),pfft%n(3)))
>>> to
>>> SAFE_ALLOCATE(dta_in_tmp(pfft%n(1),pfft%n(2),pfft%n(3)+1))
>>> the execution finishes and the result is as expected. But then some
>>> other
>>> tests start failing
>>>
>>> Do you know who could help could help me? Or could you give me some
>>> other
>>> hint?
>>>
>>> Thank you in advance
>>> Regards,
>>> Joseba
>>>
>>> P.S. example inp file:
>>> Units = eV_angstrom
>>> CalculationMode = gs
>>>
>>> spacing = 0.2
>>> radius = 7.0
>>> PoissonSolver = fft
>>> FFTLibrary = pfft
>>> ExperimentalFeatures=yes
>>> %Coordinates
>>> "H" | 1.000 | 0.000 |0.000 | no
>>> %
>>>
>>> XCFunctional = gga_x_pbe + gga_c_pbe
>>> ProfilingMode = yes
>>> FromScratch = yes
>>>
>>> ParallelizationStrategy = par_domains + par_states
>>>
>>> ConvRelDens = 1e-4
>>> #PFFTOutput = yes
>>>
>>>
>>> _______________________________________________
>>> Octopus-devel mailing list
>>> Octopus-devel at tddft.org
>>> http://www.tddft.org/mailman/listinfo/octopus-devel
>>>
>>>
> _______________________________________________
> Octopus-devel mailing list
> Octopus-devel at tddft.org
> http://www.tddft.org/mailman/listinfo/octopus-devel
>
More information about the Octopus-devel
mailing list