freeon-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [FreeON-devel] problem of compiling Modules/LinAlg.F90 using mpif90


From: Matt Challacombe
Subject: Re: [FreeON-devel] problem of compiling Modules/LinAlg.F90 using mpif90 (backend compiler ifort)
Date: Sun, 27 May 2012 16:20:23 -0600

If you are not using NEB, you shouldn't need
"--enable-parallel-clones" either. It will simplify your life to leave
it off.
clones == NEB images.

(1) You could get these matrices with a little effort.  Since they may
be big, getting them well will depend
on the format you want them in.  This is something I'm willing to help you with.

(2) It really depends on what kind of molecule.  If you are computing
something with a very small band gap,
it will be hard.  So, like graphene or a zero gap nano tube will be
hard.  If its more protein like and well behaved,
200-300 atoms with 6-31G** is certainly possible.  It also depends on
how many digits in the total energy and
forces you need, how fast the calculations will be.  You can probably
do more than
3-4K atoms with 6-31G (depending on memory, # of digits you need, your
patience etc).

(3) 6-D, 10-F Cartesians.  The indexing is localized to the file
Modlues/Indexing.F90.
Look at the function, LMNDex(L,M,N).

I would suggest just trying out a light weight trial run of what you
want to do (ie STO-2G),
so that you don't make a big investment, only to find something big
missing at the end.  I'm happy to
help to an extent, and  likely to help more if you give back by
commenting in  the code etc as
you discover things  :)

Best, M

On Sun, May 27, 2012 at 12:49 PM, Gao Bin <address@hidden> wrote:
> Hi, Matt
>
> Thank you for your detailed reply. Indeed, I used "./configure --enable-MPI" 
> which I guess produced the problem. Therefore, for the time being, should I 
> compile FreeON with "--enable-parallel-clones" and run the program within one 
> node (different nodes connect using distributed memory)?
>
> Moreover, I will first use FreeON to get the ground state of a big molecule 
> (probably hundreds of atoms or more), and perform further property 
> calculations using my code. Therefore, may I ask the following questions?
>
> (1) Could I get the atomic orbital density and Fock matrix from FreeON by 
> using some keywords? Or are they saved in some files? Or do I need to modify 
> the code to write these matrices?
>
> (2) At first, I will calculate a molecule with around 200-300 atoms 
> containing H, C, N and O elements, with at least 6-31G basis sets or larger 
> ones, for instance 6-31G*. I guess it should be possible for FreeON, right? 
> What is the maximum number of atoms I could try with 6-31G basis set?
>
> (3) As regards basis sets, may I ask if FreeON uses spherical Gaussian type 
> orbitals (GTOs), or Cartesian GTOs, or both? Besides, what is the order of 
> these GTOs? For instance, some programs use -l, -l+1, ..., 0, ..., l-1, l for 
> spherical GTOs, and Gaussian 03/09 uses a bit weird (my personally feeling) 
> Cartesian GTOs, while Dalton uses, for example, xx, xy, xz, yy, yz, zz. So 
> May I ask what is the order of FreeON uses (since I need to know these order 
> and the integrals from FreeON)?
>
> Sorry to raise so many questions. Thank you so much!
>
> Cheers
>
> Gao
> ________________________________________
> From: Matt Challacombe address@hidden
> Sent: Sunday, May 27, 2012 6:39 PM
> To: address@hidden
> Cc: Gao Bin
> Subject: Re: [FreeON-devel] problem of compiling Modules/LinAlg.F90 using 
> mpif90 (backend compiler ifort)
>
> Hi Gao,
>
> It looks like you are trying to activate the "non-clone-parallelism"
> or "spatial parallelism"  in FreeON.  We are no longer supporting this
> parallelism at this
> time -- frankly its broken all over the code.  I'm sure it could be
> fixed with a bit of effort, but we are developing an alternative model
> now to replace it, based more on simple task parallelism, generalized
> N-body formalism and targeting many core platforms (ie knights
> corner).   Our hope
> is that this unified approach will be much simpler to develop and maintain,
> and achieve high performance through using advanced programming models.
>
> Currently, we are using serial code to carry out some (for us) pretty
> big calculations, involving NEB with ~300+ atoms.   Have you tried
> just serial
> for your problem yet?
>
> If you are really determined to get the MPI code going again, we can try to
> help some.  I'd suggest leaving it off for the linear algebra, since
> its the most
> complicated part, and also because its the fastest too.  You can pretty simply
> mix and match parallel between subprograms.
>
> Also, if you are running on SMP type boxes, it would be much easier to just
> throw in a few open mp pragmas to get the same (or better) effect....
> I'd be much more interested in trying to support that as an interim
> approach rather than trying to fix the broken MPI.
>
> All the best, Matt
>
> On Sun, May 27, 2012 at 9:05 AM, Gao Bin <address@hidden> wrote:
>> Dear Sirs,
>>
>> Recently, I planed to use FreeON to calculate some large molecules. Before
>> that, I guess it might be better I have a MPI version of FreeON. I
>> downloaded the latest version freeon-beta-2012-05-03, and using internal
>> HDF5 library and MKL BLAS/LAPACK libraries. It however failed when compiling
>> Modules/LinAlg.F90 as shown in the following. Moreover, I have changed
>> "SymbolikMM(A,B,C,UpDate)" to "SymbolikMM(A,B,C,Flag,UpDate)",
>> "NumerikMM(A,B,BMTrix,C,1,1,1,Perf_O)" to
>> "NumerikMM(A,B,BMTrix,C,1,1,1,Flag,Perf_O)", but I then got the same error
>> (no matching specific subroutine) for "CALL SetEq(Flag,0)", "CALL
>> New(Flag,NAtoms)", "CALL Delete(Flag)". Could you please have a look and
>> give me some suggestions about how to fix it? Thank you so much.
>>
>> Cheers
>>
>> Gao
>>
>> The error when compiling Modules/LinAlg.F90:
>>
>>     /bin/sh ../libtool  --tag=FC --silent  --mode=compile mpif90
>> -DHAVE_CONFIG_H -I. -I..  -I../hdf5-1.8.3/src  -g -O3 -no-prec-div -fpe0
>> -xHost -I. -I../Modules -I. -I..  -I./MMA/LookUpTables -I./MMA/Functionals
>> -I./MMA/PAC   -c -o LinAlg.lo LinAlg.F90
>> LinAlg.F90(861): warning #8093: A do-variable within a DO body shall not
>> appear in a variable definition context.   [N]
>>         RecvPrior%I(K)=RecvStruct(N,A,B,U(N))
>> ----------------------------------^
>> LinAlg.F90(862): warning #8093: A do-variable within a DO body shall not
>> appear in a variable definition context.   [N]
>>         SendPrior%I(K)=SendStruct(N,A,B,V(N))
>> ----------------------------------^
>> LinAlg.F90(999): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [SYMBOLIKMM]
>>     CALL SymbolikMM(A,B,C,UpDate) ! Local
>> ---------^
>> LinAlg.F90(1003): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [SYMBOLIKMM]
>>         CALL SymbolikMM(A,U(From),C,.TRUE.) ! Non-local
>> -------------^
>> LinAlg.F90(1027): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,1,1,Perf_O)
>> -----------^
>> LinAlg.F90(1029): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,1,1,Perf_O)
>> -----------^
>> LinAlg.F90(1030): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,2,2,Perf_O)
>> -----------^
>> LinAlg.F90(1032): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,1,1,Perf_O)
>> -----------^
>> LinAlg.F90(1033): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,2,1,2,Perf_O)
>> -----------^
>> LinAlg.F90(1035): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,1,1,Perf_O)
>> -----------^
>> LinAlg.F90(1036): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,2,2,2,Perf_O)
>> -----------^
>> LinAlg.F90(1038): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,1,1,Perf_O)
>> -----------^
>> LinAlg.F90(1039): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,2,2,Perf_O)
>> -----------^
>> LinAlg.F90(1040): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,3,3,Perf_O)
>> -----------^
>> LinAlg.F90(1041): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,4,4,Perf_O)
>> -----------^
>> LinAlg.F90(1043): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,1,1,Perf_O)
>> -----------^
>> LinAlg.F90(1044): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,2,1,2,Perf_O)
>> -----------^
>> LinAlg.F90(1045): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,3,1,3,Perf_O)
>> -----------^
>> LinAlg.F90(1046): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,4,1,4,Perf_O)
>> -----------^
>> LinAlg.F90(1048): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,1,1,Perf_O)
>> -----------^
>> LinAlg.F90(1049): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,2,3,1,Perf_O)
>> -----------^
>> LinAlg.F90(1050): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,1,2,2,Perf_O)
>> -----------^
>> LinAlg.F90(1051): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,2,4,2,Perf_O)
>> -----------^
>> LinAlg.F90(1052): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,3,1,3,Perf_O)
>> -----------^
>> LinAlg.F90(1053): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,4,3,3,Perf_O)
>> -----------^
>> LinAlg.F90(1054): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,3,2,4,Perf_O)
>> -----------^
>> LinAlg.F90(1055): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>       CALL NumerikMM(A,B,BMTrix,C,4,4,4,Perf_O)
>> -----------^
>> LinAlg.F90(1100): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>           CALL NumerikMM(A,U(From),UMTrix(Q:),C,1,1,1,Perf_O)
>> ---------------^
>> LinAlg.F90(1102): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>           CALL NumerikMM(A,U(From),UMTrix(Q:),C,1,1,1,Perf_O)
>> ---------------^
>> LinAlg.F90(1103): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>           CALL NumerikMM(A,U(From),UMTrix(Q:),C,1,2,2,Perf_O)
>> ---------------^
>> LinAlg.F90(1105): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>           CALL NumerikMM(A,U(From),UMTrix(Q:),C,1,1,1,Perf_O)
>> ---------------^
>> LinAlg.F90(1106): error #6285: There is no matching specific subroutine for
>> this generic subroutine call.   [NUMERIKMM]
>>           CALL NumerikMM(A,U(From),UMTrix(Q:),C,2,1,2,Perf_O)
>> ---------------^
>> /tmp/ifort3Msqv9.i90(3820): catastrophic error: Too many errors, exiting
>> compilation aborted for LinAlg.F90 (code 1)
>> make[2]: *** [LinAlg.lo] Error 1
>> make[2]: Leaving directory `/home/gaobin/freeon-beta-2012-05-03/Modules'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory `/home/gaobin/freeon-beta-2012-05-03'
>> make: *** [all] Error 2
>>
>>
>> _______________________________________________
>> FreeON-devel mailing list
>> address@hidden
>> https://lists.nongnu.org/mailman/listinfo/freeon-devel
>>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]