On Tuesday, September 07, 2010, Igor Peshansky wrote:
> If you do not get the C++ line numbers in the trace, you can also run your
> program under gdb and set a breakpoint in
> 'x10aux::throwException(x10aux::ref<x10::lang::Throwable>)'. When you hit
> this breakpoint, go up a frame and you should end up on the C++ line that
> caused the exception to be thrown. Again, the "//#line" comment above
> that
> C++ line should point you to the corresponding X10 source line.
Igor,
following your suggestion above, I was able to pin the exception down to the
following single X10 statement.
finish ateach (pt in v_src ) {
/* ... some lines left out ... */
/**
* Scatter the vector v
*/
v_src(pt).copyFrom(j_min(pt),
v,j_min(pt),j_len(pt));
/* ... some more lines left out ... */
}
In this code snippet, we have the following data types.
static type Array1D = Array[Double]{rank==1};
var v: Array1D;
global val v_src: DistArray[Array1D]{rank==1};
/**
* v_src is generated from v by scattering
* the data across the MPI tasks. The following
* two distributed arrays describe which parts
* of v get where.
*/
global val j_min: DistArray[Int]{rank==1};
global val j_len: DistArray[Int]{rank==1};
All objects of class DistArray are build on the same distribution.
val Dv_tmp:Dist = Dist.makeUnique(D.places());
Do you see what is wrong with this copyFrom() ? Actually, the exception is
thrown only when run on more than one place, and it is thrown when the place
v_src.dist()(pt) is not v.home(). It somehow smells like a placement error of
some sort.
BTW, I was using the following statement to start the gdb debugger.
mpiexec -np 2 ddd ./matmul
This gave me a GUI for each MPI task. Do you know whether the PTP parallel
debugger could be used for this as well ? At least for debugging the C++ code.
It is also based on gdb, as far as I know.
--
Mit freundlichen Grüßen / Kind regards
Dr. Christoph Pospiech
High Performance & Parallel Computing
Phone: +49-351 86269826
Mobile: +49-171-765 5871
E-Mail: [email protected]
-------------------------------------
IBM Deutschland GmbH
Vorsitzender des Aufsichtsrats: Erich Clementi
Geschäftsführung: Martin Jetter (Vorsitzender),
Reinhard Reschke, Christoph Grandpierre,
Klaus Lintelmann, Michael Diemer, Martina Koederitz
Sitz der Gesellschaft: Ehningen / Registergericht: Amtsgericht Stuttgart, HRB
14562 WEEE-Reg.-Nr. DE 99369940
------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:
Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
X10-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/x10-users