Unrecognized instruction when using Valgrind on Code using the MUMPS library

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Unrecognized instruction when using Valgrind on Code using the MUMPS library

Maurice Maurer
Hi,
I am trying to debug my code with Valgrind but I do not get to the buggy
part because Valgrind kills the program after an Unrecognized
instruction in the MUMPS library:

vex amd64->IR: unhandled instruction bytes: 0xC4 0x82 0x21 0x2E 0x1C
0x23 0x49 0x83
vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=1 REX.B=1
vex amd64->IR:   VEX=1 VEX.L=0 VEX.nVVVV=0xB ESC=0F38
vex amd64->IR:   PFX.66=1 PFX.F2=0 PFX.F3=0
==4206== valgrind: Unrecognised instruction at address 0x1641d07.
==4206==    at 0x1641D07: mumps_hamf4_ (in
/global/u1/n/nox/codes/debug-edison-gene3d/bin/gene_edison)
==4206==    by 0x120F862: dmumps_ana_f_ (in
/global/u1/n/nox/codes/debug-edison-gene3d/bin/gene_edison)
==4206==    by 0x11DA8B2: dmumps_ana_driver_ (in
/global/u1/n/nox/codes/debug-edison-gene3d/bin/gene_edison)
==4206==    by 0x118EBA7: dmumps_ (in
/global/u1/n/nox/codes/debug-edison-gene3d/bin/gene_edison)
==4206==    by 0x1013087: mod_spsol_mumps_mp_mumps_factorize_
(mod_spsol_mumps.f90:173)
==4206==    by 0xD5E682:
xy_fieldsolver_mod_mp_initialize_xy_fieldsolver_ (FieldSolver.F90:333)
==4206==    by 0xD17C8B: fieldsolver_dd_mp_initialize_field_solve_dd_
(field_solve_dd.F90:69)
==4206==    by 0x9C4C87: field_solver_mp_initialize_field_solver_
(field_solver.F90:111)
==4206==    by 0x410E67: aux_fields_mp_initialize_calc_aux_fields_
(aux_fields.F90:51)
==4206==    by 0xABB3AC: initial_value_comp_mp_initial_value_
(initial_value_comp.F90:78)
==4206==    by 0xA10E94: gene_subroutine_mp_rungene_
(gene_subroutine.F90:103)
==4206==    by 0xE90309: MAIN__ (gene.F90:79)


I run the code on the NERSC machine Edison:
http://www.nersc.gov/users/computational-systems/edison/

The Valgrind version is 3.11.0.

The code is not runnable without PETSC and MUMPS. The PETSC version is
3.7.2.0 and MUMPS is part of the Cray tpsl packagage (16.07.1) but I
have no idea which version of MUMPS is in there.

To compile my code I use the Intel Programming Environment
(PrgEnv-intel/5.2.56) and the intel compiler intel/17.0.1.132

Is there any way you could help me with that?


Regards, Maurice


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Unrecognized instruction when using Valgrind on Code using the MUMPS library

Jeff Hammond
What happens if you tell PETSc to build MUMPS instead of using Cray TPSL?  That is a simple way to rule out an issue with TPSL.

NERSC Edison has Intel Ivy Bridge, which supports AVX, which should be fully supported in Valgrind 3.11, so I am rather confused why you see an unrecognized instruction.  Are you certain that you did not accidentally use a binary compiled for Cori (which includes Haswell and Knights Landing)?

You can use Intel SDE (https://software.intel.com/en-us/articles/intel-software-development-emulator) and XED (https://github.com/intelxed/xed) to analyze and decode instruction encodings to determine exactly what is unrecognized here.

Jeff


On Mon, May 22, 2017 at 3:52 PM, Maurice Maurer <[hidden email]> wrote:
Hi,
I am trying to debug my code with Valgrind but I do not get to the buggy
part because Valgrind kills the program after an Unrecognized
instruction in the MUMPS library:

vex amd64->IR: unhandled instruction bytes: 0xC4 0x82 0x21 0x2E 0x1C
0x23 0x49 0x83
vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=1 REX.B=1
vex amd64->IR:   VEX=1 VEX.L=0 VEX.nVVVV=0xB ESC=0F38
vex amd64->IR:   PFX.66=1 PFX.F2=0 PFX.F3=0
==4206== valgrind: Unrecognised instruction at address 0x1641d07.
==4206==    at 0x1641D07: mumps_hamf4_ (in
/global/u1/n/nox/codes/debug-edison-gene3d/bin/gene_edison)
==4206==    by 0x120F862: dmumps_ana_f_ (in
/global/u1/n/nox/codes/debug-edison-gene3d/bin/gene_edison)
==4206==    by 0x11DA8B2: dmumps_ana_driver_ (in
/global/u1/n/nox/codes/debug-edison-gene3d/bin/gene_edison)
==4206==    by 0x118EBA7: dmumps_ (in
/global/u1/n/nox/codes/debug-edison-gene3d/bin/gene_edison)
==4206==    by 0x1013087: mod_spsol_mumps_mp_mumps_factorize_
(mod_spsol_mumps.f90:173)
==4206==    by 0xD5E682:
xy_fieldsolver_mod_mp_initialize_xy_fieldsolver_ (FieldSolver.F90:333)
==4206==    by 0xD17C8B: fieldsolver_dd_mp_initialize_field_solve_dd_
(field_solve_dd.F90:69)
==4206==    by 0x9C4C87: field_solver_mp_initialize_field_solver_
(field_solver.F90:111)
==4206==    by 0x410E67: aux_fields_mp_initialize_calc_aux_fields_
(aux_fields.F90:51)
==4206==    by 0xABB3AC: initial_value_comp_mp_initial_value_
(initial_value_comp.F90:78)
==4206==    by 0xA10E94: gene_subroutine_mp_rungene_
(gene_subroutine.F90:103)
==4206==    by 0xE90309: MAIN__ (gene.F90:79)


I run the code on the NERSC machine Edison:
http://www.nersc.gov/users/computational-systems/edison/

The Valgrind version is 3.11.0.

The code is not runnable without PETSC and MUMPS. The PETSC version is
3.7.2.0 and MUMPS is part of the Cray tpsl packagage (16.07.1) but I
have no idea which version of MUMPS is in there.

To compile my code I use the Intel Programming Environment
(PrgEnv-intel/5.2.56) and the intel compiler intel/17.0.1.132

Is there any way you could help me with that?


Regards, Maurice


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users



--

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Unrecognized instruction when using Valgrind on Code using the MUMPS library

Philippe Waroquiers
In reply to this post by Maurice Maurer
On Mon, 2017-05-22 at 15:52 -0700, Maurice Maurer wrote:
> The Valgrind version is 3.11.0.
It would be worth trying the latest release (3.12).
Or even better the SVN version :
   svn co svn://svn.valgrind.org/valgrind/trunk valgrind
   cd valgrind
   ./autogen.sh
   ./configure --prefix=...
   make
   make install

Often, new releases provide better support for instructions.

Philippe



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users
Loading...