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 10:39:22 -0600

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]