Welcome, Guest
Username: Password: Remember me

TOPIC: Artemis and direct solver in parallel (MUMPS)

Artemis and direct solver in parallel (MUMPS) 10 years 7 months ago #12716

  • jmhervouet
  • jmhervouet's Avatar
Hello Costas,

There is no link between partitioning and direct solver. We shall test the case btwi with Mumps and report. What we already know is that the storage of matrices can be optimised for Mumps, compared to what is done at the time being.

Regards,

Jean-Michel Hervouet
The administrator has disabled public write access.

Artemis and direct solver in parallel (MUMPS) 9 years 9 months ago #15600

Dear Jean-Michel

It is impossible to run ARTEMIS with MUMPS solver without changes of code (sources from svn.opentelemac.org/svn/opentelemac/tags/v6p3r2/).

First bug that I wrote to Costas.
PRE4_MUMPS calls SD_FABSG4 without TYPEXT1(2/3/4) argumets.
This bug may be fixed easy.

Next PRE4_MUMPS calls SOLVE_MUMPS to solve system.
But SOLVE_MUMPS is empty.

I tried to change SOLVE_MUMPS by SOLVE_MUMPS_PAR
and found another bug - exceeding the bounds of the array.

PRE4_MUMPS calls SOLVE_MUMPS with arguments
      CALL SOLVE_MUMPS(NPBLK,NSEGBLK,GLOSEG4,NSEGBLK,DA,XA,
     *     XINC,RHS,INFOGR,TYPEXT,KNOLG,NPOIN_TOT,IPID)
GLOSEG4 have size GLOSEG4(2*NSEGBLK)
In the subroutine SOLVE_MUMPS_PAR array GLOSEG, that accept GLOSEG4, have size GLOSEG(MAXSEG,2) and MAXSEG equal NSEGBLK. So GLOSEG have size 2*NSEGBLK too. But there is part of code
      IF(TYPEXT.EQ.'S') THEN 
         DO K = 1,NSEGB
            I = TEMP3(GLOSEG(K,1))
            J = TEMP3(GLOSEG(K,2))  
            NBELEM = NBELEM + 1
            IF(I.LT.J) THEN
               MUMPS_PAR%IRN_loc(NBELEM) = I 
               MUMPS_PAR%JCN_loc(NBELEM) = J
            ELSE
               MUMPS_PAR%IRN_loc(NBELEM) = J 
               MUMPS_PAR%JCN_loc(NBELEM) = I
            ENDIF
            MUMPS_PAR%A_loc(NBELEM) = XA(K)
         ENDDO
      ELSE
         DO K = 1,2*NSEGB
            I = TEMP3(GLOSEG(K,1))
            J = TEMP3(GLOSEG(K,2))
            NBELEM = NBELEM + 1
            MUMPS_PAR%IRN_loc(NBELEM) = I 
            MUMPS_PAR%JCN_loc(NBELEM) = J
            MUMPS_PAR%A_loc(NBELEM) = XA(K)
         ENDDO
      ENDIF

When TYPEXT .ne. 'S' top limit of loop is equal to 2*NSEGB that bigger then MAXSEG (NSEGB=NSEGBLK=MAXSEG). When K=NSEGB+1 program stops with error
Subscript #1 of the array GLOSEG has value *** which is greater than the upper bound of ***

You wrote that you ran ARTEMIS with MUMPS. Can you help me?

Maxim Sorockin
The administrator has disabled public write access.

Artemis and direct solver in parallel (MUMPS) 10 years 6 months ago #12790

  • Hafedh
  • Hafedh's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 32
Hello all,

I have got the same problem when runing in parallel (metis) both creocean and btwi cases. I am working under linux OS.

Hafedh
The administrator has disabled public write access.

Artemis and direct solver in parallel (MUMPS) 10 years 6 months ago #12793

  • Hafedh
  • Hafedh's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 32
OPENING FILES FOR ARTEMIS

may this will help:
*****************************
* MEMORY ORGANIZATION *
*****************************

READGEO1: TITLE= MAILLAGE TRIGRID

NUMBER OF ELEMENTS: 0
NUMBER OF POINTS: 0
READGEO1 : NUMBER OF POINTS IN THE MESH: 0
NUMBER OF BOUNDARY POINTS:

PLANTE: PROGRAM STOPPED AFTER AN ERROR
...

..
|~~~~~~~~~~~~~~~~~~
|2
|2
|2
|2
|2
|2
|2
|2
|
|mpiexec noticed that the job aborted, but has no info as to the process
|that caused that situation.
|
|~~~~~~~~~~~~~~~~~~
The administrator has disabled public write access.

Artemis and direct solver in parallel (MUMPS) 10 years 6 months ago #12900

  • Hafedh
  • Hafedh's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 32
my problem is solved by reinstalling metis specifying in file include/metis.h 32 bit architecture instead of 64 yet my computer uses 64 bit barchitecture.
The administrator has disabled public write access.

Artemis and direct solver in parallel (MUMPS) 9 years 10 months ago #15574

Dear Costas
This error is the same like previous that you wrote.
Cause in the PRE4_MUMPS file.
Subroutine PRE4_MUMPS calls SD_FABSG4 like

CALL SD_FABSG4(NPOIN,NSEGB,DAB1,DAB2,DAB3,DAB4,
* XAB1,XAB2,XAB3,XAB4,NPBLK,NSEGBLK,DA,XA)

but this subroutine have arguments

! ********************
SUBROUTINE SD_FABSG4
! ********************
!
&(NPOIN,NSEG,DAB1,DAB2,DAB3,DAB4,XAB1,XAB2,XAB3,XAB4,
& NPBLK,NSEGBLK,DA,XA,TYPEXT1,TYPEXT2,TYPEXT3,TYPEXT4)

if some of TYPEXT .ne. 'S' or 'Q' then SD_FABSG4 calls plante(1) and stops

This bug may be fixed easy but there is more critical bug that affects using MUMPS with ARTEMIS. I will describe this bug latter.

Maxim Sorockin
The administrator has disabled public write access.

Artemis and direct solver in parallel (MUMPS) 9 years 3 months ago #18022

  • cyamin
  • cyamin's Avatar
  • OFFLINE
  • openTELEMAC Guru
  • Posts: 997
  • Thank you received: 234
Dear Sebastien,

Following your question in post #18017, I never managed to make it work. Most of the effort was put in compiling the necessary libraries for the windows environment, which I assure you is quite difficult for my skill level. I did manage to compile, albeit with some errors and I couldn't tell if ARTEMIS failing to work was due to the libraries or a problem on itself.

It later emerged (as Maxim Sorockin pointed out) that ARTEMIS had indeed some issues with MUMPS solver and I gave up until a solution was found.

If you can verify that MUMPS is working on a linux machine, then I could look into compiling the libraries for Windows using MinGW64.

Best Regards,
Costas
The administrator has disabled public write access.

Artemis and direct solver in parallel (MUMPS) 9 years 3 months ago #18024

  • jmhervouet
  • jmhervouet's Avatar
Hello,

With the help of Christophe Denis who is a user of Mumps at EDF, I have corrected the different mistakes pointed out by Maxim Sorockin, it is in the svn trunk, but apparently nobody really took the time to test it yet.

With best regards,

Jean-Michel Hervouet
The administrator has disabled public write access.

Artemis and direct solver in parallel (MUMPS) 9 years 3 months ago #18025

  • sebourban
  • sebourban's Avatar
  • OFFLINE
  • Administrator
  • Principal Scientist
  • Posts: 814
  • Thank you received: 219
Hello Jean-Michel,

I am trying to test.
I found another "oubli" in PRE4_MUMPS, it tries to pass TYPEXT instead of one of the TYPEXT1,2,3,4 in the call to SOLVE_MUMPS_PAR.

To make it compile, I have therefore used TYPEXT1 for now -- can you confirm OK ?

I am having trouble linking the compiled libraries at the mment ..

Will post progress on this post.

Sébastien.
The administrator has disabled public write access.

Artemis and direct solver in parallel (MUMPS) 9 years 3 months ago #18027

  • sebourban
  • sebourban's Avatar
  • OFFLINE
  • Administrator
  • Principal Scientist
  • Posts: 814
  • Thank you received: 219
Hello all,

Good news -- after one last correction in PRE4_MUMPS, and a lot of work in compiling MUMPS (on Linux) I finally managed to have ARTEMIS linked with MUMPS and working in parallel (SOLVER=9) !

I successfully tried on the case called ile_para.

However, when I try on the example btwi, a segmentation fault appears -- but it comes from the user fortran, and not because of ARTEMIS. We will check and correct all user fortran in the ARTEMIS examples provided with the next version of the system.

The important lines in my config files are:
cmd_obj:    gfortran -c -g -fconvert=big-endian -DHAVE_MPI -DHAVE_MUMPS -frecord-marker=4 <mods> <incs> <f95name>
#
incs_bief:  -I /apps/openmpi/1.6.5/gcc/4.7.2/include/ -I /home/HR/sbo/openlibs/MUMPS_5.0.0/include/
incs_parallel:  -I /apps/openmpi/1.6.5/gcc/4.7.2/include/ -I /home/HR/sbo/openlibs/MUMPS_5.0.0/include/
libs_all:  /apps/openmpi/1.6.5/gcc/4.7.2/lib/libmpi.so -L /home/HR/sbo/openlibs/MUMPS_5.0.0/lib -ldmumps -lmumps_common -lpord /home/HR/sbo/openlibs/SCALAPACK/libscalapack.a -L /home/HR/sbo/openlibs/BLAS -lblas /home/HR/sbo/openlibs/BLACS/LIB/blacs_MPI-LINUX-0.a /home/HR/sbo/openlibs/BLACS/LIB/blacsF77init_MPI-LINUX-0.a /home/HR/sbo/openlibs/BLACS/LIB/blacs_MPI-LINUX-0.a

Hope this helps,

Sébastien.
The administrator has disabled public write access.

The open TELEMAC-MASCARET template for Joomla!2.5, the HTML 4 version.