On 22 Jul 2015 13:09, "Boubacar Traore" <[email protected]> wrote:
>
> Hi Nick,
> Thanks a lot !
>
> Now siesta has been properly compiled and is running nicely. I removed
openmp as you mentioned.
> For Intelmpi, thank you for having pointed it out, I did not notice it. I
have changed it to Blacs for openmpi. You were right about intelmpi blacs
(mpich) for my openmpi, parallel siesta was issuing segmentation fault
errros. With proper blacs library for openmpi, the problem was solved.
>
> There is one thing that I have noticed with parallel siesta. I did many
tests on a system of 11 atoms. The benefit of parallel over serial was
noticeable with 8 cores. However, with 32 cores, parallel was worse than
serial. This goes in line with some of the remarks of previous posts that
too many cores for parallel siesta is not beneficial due to possibly siesta
wasting time to communicate between nodes.
> But with, diag.paralleloverk set to true, parallel siesta was very
perfoming/efficient with increasing number of cores.
>
> Without many k points, the benefit of many cores with parallel siesta
would probably be noticeable over serial only with large systems (many
atoms) compared to few atom systems.
>
Not surprising as already mentioned on the list.
> Best regards,
>
>
> On Tue, Jul 21, 2015 at 9:58 PM, Nick Papior <[email protected]> wrote:
>>
>> You still have two problems in your arch.make.
>>
>> 1) As I said in the second mail, do not use OpenMP.
>> 2) You are linking for the intelmpi blacs library, which is based on
mpich, however, you are using OpenMPI, this will result in obscure errors
when running in parallel.
>>
>> Static and dynamic is a matter of your preference, there are reports of
performance decrease by using dynamic, but that should only occur for very
slow disks, secondly I would hardly think you would notice this, hence you
can reduce the binary file size by using dynamic. (I would recommend
dynamic unless, test if you want to test speed, I highly doubt it has a
huge influence.)
>>
>> 2015-07-21 18:32 GMT+00:00 Boubacar Traore <[email protected]>:
>>>
>>> Thank you Nick!
>>>
>>> I went through the documentation of the compiler and I fairly
understand the different flags. Using
>>> DUMMY_FOX=--enable-dummy
>>> solved the problem that I reporte about  -- forrtl: severe (71):
integer divide by zero
>>>
>>> The point that I am not sure of is the choice between "static" and
"dyanmic" linking during the compilation and what would be its impact on
the optimization of the code.
>>> You may kindly tell me the two things that I may be doing wrong !!!
>>>
>>> Thanks !
>>>
>>> On Tue, Jul 21, 2015 at 7:50 PM, Nick Papior <[email protected]>
wrote:
>>>>
>>>> You are doing at least 2 things wrong in your arch.make for a
successful application.
>>>>
>>>> Please go through the mailing list about compilation with intel
compilation.
>>>>
>>>> If you have questions, please refer to those posts as that makes it
easier to track how you got your arch.make to its current state.
>>>>
>>>> Generally it seems that a lot of people simply copy arch.make files
from other people on this list, that can at best be very erroneous. If
people give you help about an arch.make file, please understand what it
does before use. You need not know the exact details of each flag, but a
hint of what it does should indicate whether it is "important" or simply an
optional flag for successful compilation.
>>>> Refer to compilers help/manual for documentation.
>>>>
>>>> 2015-07-21 14:14 GMT+00:00 Boubacar Traore <[email protected]>:
>>>>>
>>>>> Hi Nick,
>>>>>
>>>>> Thank you for your reply!
>>>>> Now siesta compiled properly.
>>>>>
>>>>> However, when I run the tests, some of the get passed while
sometimes I get errors like this :
>>>>> --
>>>>>  Running mgco3 test...
>>>>>     ==> Copying pseudopotential file for Mg...
>>>>>     ==> Copying pseudopotential file for C...
>>>>>     ==> Copying pseudopotential file for O...
>>>>>     ==> Running SIESTA as ../../../siesta
>>>>> forrtl: severe (71): integer divide by zero
>>>>> Image              PC                Routine            Line
Source
>>>>> siesta             00000000004C3E10  idiag_                     71
idiag.f
>>>>> siesta             00000000005C1C02  m_find_kgrid_mp_f         112
find_kgrid.F
>>>>> siesta             00000000005BFD50  kpoint_grid_mp_se          79
kpoint_grid.F90
>>>>> siesta             000000000061F236  m_siesta_init_mp_         294
siesta_init.F
>>>>> siesta             000000000063B12E  MAIN__                     16
siesta.F
>>>>> siesta             000000000041641C  Unknown               Unknown
Unknown
>>>>> libc.so.6          0000003BE761ED5D  Unknown               Unknown
Unknown
>>>>> siesta             0000000000416319  Unknown               Unknown
Unknown
>>>>> make[1]: *** [completed_work] Error 71
>>>>> make[1]: Leaving directory
`/opt/home/traoreb/siesta-3.2-pl-5/Obj/Tests/mgco3'
>>>>> make[1]: Entering directory
`/opt/home/traoreb/siesta-3.2-pl-5/Obj/Tests/si2x1h'
>>>>> ---
>>>>>
>>>>> It seems that siesta binary file some issues. I'm using ifort version
13.0.1 for the compilation.
>>>>> Attached is my new arch.make file.
>>>>>
>>>>> Are there some compiler flags that I need to set to avoid these
problems? Or any optimization?
>>>>>
>>>>> Thanks,
>>>>> Boubacar
>>>>>
>>>>> On Tue, Jul 21, 2015 at 2:12 PM, Nick Papior <[email protected]>
wrote:
>>>>>>
>>>>>> You have set sp_kind to 1, I assume you have not used configure to
create the initial arch.make file?
>>>>>> On Intel compilers it should be 4.
>>>>>> Remember to do make clean before rerunning make.
>>>>>>
>>>>>> On 21 Jul 2015 12:29, "Boubacar Traore" <[email protected]>
wrote:
>>>>>>>
>>>>>>> Dear all,
>>>>>>>
>>>>>>> I am trying to compile siesta-3 in parallel with intel fortran
compiler. I tried to get inspiration from the different topics related to
the compilation issues using arch.make file but my problem is still not
solved. Attached is my arch.make file.
>>>>>>>
>>>>>>> The compilation always returns this error allong the way which is
partly reproduced below:
>>>>>>> I cannot figure what I am doing wrong.
>>>>>>>
>>>>>>>
>>>>>>>
----------------------------------------------------------------------------
>>>>>>> make[1]: Entering directory
`/opt/home/traoreb/siesta-3.2-pl-5/Obj/MPI'
>>>>>>> mpif90  -c -mp1 -w -prec_div -pad -O3 -openmp
-I/opt/openmpi-1.8.7/include
/opt/home/traoreb/siesta-3.2-pl-5/Src/MPI/mpi__include.f90
>>>>>>> if [ -z "1 8" ] ; then  make kind_explorer ; fi
>>>>>>> The kind numbers for single and double precision reals follow
>>>>>>> sh /opt/home/traoreb/siesta-3.2-pl-5/Src/MPI/generate.sh "1 8"
>>>>>>>  ===> Generating module files from templates...
>>>>>>> 1 8
>>>>>>> mpif90  -c -mp1 -w -prec_div -pad -O3 -openmp
-I/opt/openmpi-1.8.7/include   Interfaces.f90
>>>>>>> Interfaces.f90(960): error #6684: This is an incorrect value for a
kind type parameter in this context.   [1]
>>>>>>>           real(1), INTENT(IN)  :: BUF(*)
>>>>>>> ---------------^
>>>>>>> Interfaces.f90(975): error #6684: This is an incorrect value for a
kind type parameter in this context.   [1]
>>>>>>>           real(1), INTENT(OUT) :: BUF(*)
>>>>>>> ---------------^
>>>>>>> .
>>>>>>> .
>>>>>>> .
>>>>>>> Interfaces.f90(1525): catastrophic error: Too many errors, exiting
>>>>>>> compilation aborted for Interfaces.f90 (code 1)
>>>>>>> make[1]: *** [Interfaces.o] Error 1
>>>>>>> make[1]: Leaving directory
`/opt/home/traoreb/siesta-3.2-pl-5/Obj/MPI'
>>>>>>> make: *** [libmpi_f90.a] Error 2
>>>>>>>
>>>>>>>
----------------------------------------------------------------------
>>>>>>>
>>>>>>> Thank you for response !!!
>>>>>>>
>>>>>>> Boubacar
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Kind regards Nick
>>>
>>>
>>
>>
>>
>> --
>> Kind regards Nick
>
>

Responder a