ScaLAPACK Archives

[Scalapack] about MPIBLACS

hello Kuo-Ling,

there is one known issue with the current version of the BLACS and 
non-case-sensitive platform (MacOS and Windows), the Makefile
assumes that it can renamed to itrbr2d_.o file generated from 
itrbr2d_.c as a itrbr2d_.C (itrbr2d is for the sake of giving an example).

It'not a big deal.

Replace the BLACS/SRC/MPI/Makefile by the one attached and you should be 

Now I have no idea what the should be for this configuration.
You will need to figure this out by yourself. This dependent on the MPI 
library and the compilers you are using.

However my guess is that it should be the same as the that fits 
the LINUX/MPICH configuration.


On Wed, 29 Mar 2006, Kuo-Ling Huang wrote:


Can I use the MPIBLACS under windows system? I  use
the Cygwin and MPICH.



___________________________________________________  ??? Yahoo!?????? 
Scalapack mailing list
-------------- next part --------------
dlvl = ../..
include $(dlvl)/

#  --------------------------
#  The communication routines
#  --------------------------
comm = igesd2d_.o sgesd2d_.o dgesd2d_.o cgesd2d_.o zgesd2d_.o \
       itrsd2d_.o strsd2d_.o dtrsd2d_.o ctrsd2d_.o ztrsd2d_.o \
       igerv2d_.o sgerv2d_.o dgerv2d_.o cgerv2d_.o zgerv2d_.o \
       itrrv2d_.o strrv2d_.o dtrrv2d_.o ctrrv2d_.o ztrrv2d_.o \
       igebs2d_.o sgebs2d_.o dgebs2d_.o cgebs2d_.o zgebs2d_.o \
       igebr2d_.o sgebr2d_.o dgebr2d_.o cgebr2d_.o zgebr2d_.o \
       itrbs2d_.o strbs2d_.o dtrbs2d_.o ctrbs2d_.o ztrbs2d_.o \
       itrbr2d_.o strbr2d_.o dtrbr2d_.o ctrbr2d_.o ztrbr2d_.o \
       igsum2d_.o sgsum2d_.o dgsum2d_.o cgsum2d_.o zgsum2d_.o \
       igamx2d_.o sgamx2d_.o dgamx2d_.o cgamx2d_.o zgamx2d_.o \
       igamn2d_.o sgamn2d_.o dgamn2d_.o cgamn2d_.o zgamn2d_.o

#  -----------------------------------------------------------------------------
#  These names are too long for the archiver to distinguish based on the suffix.
#  I'm going to use logical links to get around this problem.  It's hokey, but
#  it lets us use the suffix rule and keep the makefile portable.
#  -----------------------------------------------------------------------------
long = blacs_gridinit_.o blacs_gridmap_.o blacs_freebuff_.o \
       blacs_gridexit_.o blacs_gridinfo_.o blacs_barrier_.o \
       sys2blacs_handle_.o free_blacs_system_handle_.o \

Clong = Cblacs_gridinit_.oo Cblacs_gridmap_.oo Cblacs_freebuff_.oo \
        Cblacs_gridexit_.oo Cblacs_gridinfo_.oo Cblacs_barrier_.oo \
        Csys2blacs_handle_.oo Cfree_blacs_system_handle_.oo \

#  --------------------
#  The support routines
#  --------------------
supp = blacs_setup_.o blacs_set_.o blacs_get_.o \
       blacs_abort_.o blacs_exit_.o blacs_pnum_.o blacs_pcoord_.o \
       ksendid_.o krecvid_.o kbsid_.o kbrid_.o \
       dcputime00_.o dwalltime00_.o

#  ----------------------------
#  The fortran and C interfaces
#  ----------------------------
Fintobj   = $(comm) $(supp) $(long)
Cintobj   = $(comm:.o=.oo) $(supp:.o=.oo) $(Clong)

#  ---------------------
#  The internal routines
#  ---------------------
internal = BI_HypBS.o BI_HypBR.o BI_IdringBS.o BI_IdringBR.o \
           BI_MpathBS.o BI_MpathBR.o BI_SringBS.o BI_SringBR.o \
           BI_TreeBS.o BI_TreeBR.o \
           BI_Ssend.o BI_Rsend.o BI_Srecv.o BI_Asend.o BI_Arecv.o \
           BI_TreeComb.o BI_BeComb.o BI_MringComb.o \
           BI_ArgCheck.o BI_TransDist.o BI_GetBuff.o BI_UpdateBuffs.o \
           BI_EmergencyBuff.o BI_BlacsErr.o BI_BlacsWarn.o BI_BlacsAbort.o \
           BI_BuffIsFree.o BI_imvcopy.o BI_smvcopy.o BI_dmvcopy.o \
           BI_ivmcopy.o BI_svmcopy.o BI_dvmcopy.o \
           BI_Pack.o BI_Unpack.o BI_GetMpiGeType.o BI_GetMpiTrType.o \
           BI_ivvsum.o BI_svvsum.o BI_dvvsum.o BI_cvvsum.o BI_zvvsum.o \
           BI_ivvamx.o BI_svvamx.o BI_dvvamx.o BI_cvvamx.o BI_zvvamx.o \
           BI_ivvamx2.o BI_svvamx2.o BI_dvvamx2.o BI_cvvamx2.o BI_zvvamx2.o \
           BI_ivvamn.o BI_svvamn.o BI_dvvamn.o BI_cvvamn.o BI_zvvamn.o \
           BI_ivvamn2.o BI_svvamn2.o BI_dvvamn2.o BI_cvvamn2.o BI_zvvamn2.o \
           BI_iMPI_amx.o BI_sMPI_amx.o BI_dMPI_amx.o BI_cMPI_amx.o \
           BI_zMPI_amx.o BI_iMPI_amx2.o BI_sMPI_amx2.o BI_dMPI_amx2.o \
           BI_cMPI_amx2.o BI_zMPI_amx2.o BI_iMPI_amn.o BI_sMPI_amn.o \
           BI_dMPI_amn.o BI_cMPI_amn.o BI_zMPI_amn.o BI_iMPI_amn2.o \
           BI_sMPI_amn2.o BI_dMPI_amn2.o BI_cMPI_amn2.o BI_zMPI_amn2.o \
           BI_cMPI_sum.o BI_zMPI_sum.o BI_ContxtNum.o BI_GlobalVars.o \
           BI_MPI_F77_to_c_trans_comm.o BI_MPI_C_to_f77_trans_comm.o \
           BI_TransUserComm.o bi_f77_mpi_attr_get.o bi_f77_mpi_op_create.o \
           bi_f77_mpi_initialized.o bi_f77_mpi_test.o bi_f77_mpi_testall.o \
           bi_f77_get_constants.o bi_f77_init.o

lib : all
f77lib : flib
F77lib : flib
Clib : clib

#  ---------------------------------------
#  Make both C and fortran interface BLACS
#  ---------------------------------------
all : INTERN $(Fintobj) $(Cintobj)
        rm -f $(BLACSFINIT) $(BLACSCINIT)
        make $(BLACSFINIT)
        make $(BLACSCINIT)
        $(ARCH) $(ARCHFLAGS) $(BLACSLIB) $(Fintobj) $(Cintobj)
        $(RANLIB) $(BLACSLIB)

        $(CC) -o Cblacs_pinfo.o -c $(CCFLAGS) $(BLACSDEFS) -DCallFromC 
-DMainInF77 \
        $(CC) -c $(CCFLAGS) $(BLACSDEFS) -DMainInF77 blacs_pinfo_.c
        $(ARCH) $(ARCHFLAGS) $(BLACSFINIT) blacs_pinfo_.o Cblacs_pinfo.o

        $(CC) -o Cblacs_pinfo.o -c $(CCFLAGS) $(BLACSDEFS) -DCallFromC 
-DMainInC \
        $(CC) -c $(CCFLAGS) $(BLACSDEFS) -DMainInC blacs_pinfo_.c
        $(ARCH) $(ARCHFLAGS) $(BLACSCINIT) blacs_pinfo_.o Cblacs_pinfo.o

#  ------------------
#  Make the internals
#  ------------------
        ( cd INTERNAL ; $(MAKE) -f ../Makefile I_int "dlvl=$(BTOPdir)" )

I_int : Bdef.h Bconfig.h $(internal)
        $(ARCH) $(ARCHFLAGS) $(BLACSLIB) $(internal)

Bdef.h : ../Bdef.h
        rm -f Bdef.h
        ln -s ../Bdef.h Bdef.h

Bconfig.h : ../Bconfig.h
        rm -f Bconfig.h
        ln -s ../Bconfig.h Bconfig.h

#  -----------------------
#  Delete the object files
#  -----------------------
clean :
        rm -f $(Cintobj) $(Fintobj) $(long:.o=.oo)
        rm -f blacs_pinfo_.o Cblacs_pinfo.o
        ( cd INTERNAL ; rm -f bi_f77_get_constants.o bi_f77_mpi_attr_get.o \
                              bi_f77_mpi_initialized.o bi_f77_mpi_op_create.o \
                              bi_f77_mpi_test.o bi_f77_mpi_testall.o \
                              bi_f77_init.o Bdef.h Bconfig.h mpif.h )
        ( cd INTERNAL ; rm -f $(internal) )

#  -------------------------------------
#  Delete the library, object and source
#  -------------------------------------
killib :
        $(MAKE) clean
        rm -f $(Fintobj:.o=.c) Bdef.h Bconfig.h
        rm -f blacs_pinfo_.c
        ( cd INTERNAL ; rm -f $(internal:.o=.c) Bdef.h Bconfig.h )
        ( cd INTERNAL ; rm -f bi_f77_get_constants.f bi_f77_mpi_attr_get.f \
                              bi_f77_mpi_initialized.f bi_f77_mpi_op_create.f \
                              bi_f77_mpi_test.f bi_f77_mpi_testall.f mpif.h )

#  -------------------------------------------------------------------------
#  Establish how to make logical links to the long-name C interface routines
#  that are distinct in first 13 characters from their Fortran interface 
#  equivalents.
#  -------------------------------------------------------------------------
Cblacs_gridinit_.oo : blacs_gridinit_.oo
        rm -f Cblacs_gridinit_.oo
        ln -s blacs_gridinit_.oo Cblacs_gridinit_.oo
Cblacs_gridinfo_.oo : blacs_gridinfo_.oo
        rm -f Cblacs_gridinfo_.oo
        ln -s blacs_gridinfo_.oo Cblacs_gridinfo_.oo
Cblacs_gridexit_.oo : blacs_gridexit_.oo
        rm -f Cblacs_gridexit_.oo
        ln -s blacs_gridexit_.oo Cblacs_gridexit_.oo
Cblacs_gridmap_.oo : blacs_gridmap_.oo
        rm -f Cblacs_gridmap_.oo
        ln -s blacs_gridmap_.oo Cblacs_gridmap_.oo
Cblacs_freebuff_.oo : blacs_freebuff_.oo
        rm -f Cblacs_freebuff_.oo
        ln -s blacs_freebuff_.oo Cblacs_freebuff_.oo
Cblacs_barrier_.oo : blacs_barrier_.oo
        rm -f Cblacs_barrier_.oo
        ln -s blacs_barrier_.oo Cblacs_barrier_.oo
Csys2blacs_handle_.oo : sys2blacs_handle_.oo
        rm -f Csys2blacs_handle_.oo
        ln -s sys2blacs_handle_.oo Csys2blacs_handle_.oo
Cblacs2sys_handle_.oo : blacs2sys_handle_.oo
        rm -f Cblacs2sys_handle_.oo
        ln -s blacs2sys_handle_.oo Cblacs2sys_handle_.oo
Cfree_blacs_system_handle_.oo : free_blacs_system_handle_.oo
        rm -f Cfree_blacs_system_handle_.oo
        ln -s free_blacs_system_handle_.oo Cfree_blacs_system_handle_.oo

#  -------------------------------------
#  Compile the (ouch!) fortran internals
#  -------------------------------------
bi_f77_init.o : mpif.h bi_f77_init.f
        $(F77) -c $(F77FLAGS) $*.f
bi_f77_get_constants.o : mpif.h bi_f77_get_constants.f
        $(F77) -c $(F77FLAGS) $*.f
bi_f77_mpi_attr_get.o : mpif.h bi_f77_mpi_attr_get.f
        $(F77) -c $(F77FLAGS) $*.f
bi_f77_mpi_initialized.o : mpif.h bi_f77_mpi_initialized.f
        $(F77) -c $(F77FLAGS) $*.f
bi_f77_mpi_op_create.o : mpif.h bi_f77_mpi_op_create.f
        $(F77) -c $(F77FLAGS) $*.f
bi_f77_mpi_test.o : mpif.h bi_f77_mpi_test.f
        $(F77) -c $(F77FLAGS) $*.f
bi_f77_mpi_testall.o : mpif.h bi_f77_mpi_testall.f
        $(F77) -c $(F77FLAGS) $*.f

mpif.h : $(MPIINCdir)/mpif.h
        rm -f mpif.h
        ln -s $(MPIINCdir)/mpif.h mpif.h

#  ------------------------------------------------------------------------
#  We move C .o files to .oo so that we can use the portable suffix rule for
#  compilation, and still have them coexist with the fortran interface
#  .o files.
#  ------------------------------------------------------------------------
.SUFFIXES: .o .oo
        $(CC) -o C$*.o -c $(CCFLAGS) $(BLACSDEFS) -DCallFromC $<
        mv C$*.o $*.oo
        $(CC) -c $(CCFLAGS) $(BLACSDEFS) $<

<Prev in Thread] Current Thread [Next in Thread>

For additional information you may use the LAPACK/ScaLAPACK Forum.
Or one of the mailing lists, or