Hi Akihiro,

May we have a simplified copy of your code (kinda the snippet provided below 
but with initial values for tileSize, numTiles_2, k, etc. i.e. something that 
compiles) so that we can also give it a go?

Would you like to try also with these flags?:

-suseBulkTransferStride=true -suseBulkTransfer=false

Thank you,

Rafa.

El 21/01/2014, a las 18:33, Akihiro Hayashi <[email protected]> escribió:

> Dear Chapel developers,
> 
> This is Akihiro Hayashi, postdoc at Rice University.
> I'm writing this to ask array copy failure in chapel.
> 
> I'm trying to evaluate some chapel benchmark across multiple nodes but I get 
> strange error.
> Please note that I'm using old version of chapel compiler (r21945) with 
> qthread-1.10 and GASNet-1.20.2(infiniband-conduit, mpi-spawner) because the 
> latest version does not work.
> With the latest version of chapel compiler (r22568) with qthread-1.10 and 
> GASNet-1.22.0(infiniband-conduit, mpi-spawner), I get SEGV when running 
> simple program (coforall loc in Locales do on loc { writeln(loc); }) across 
> multiple nodes with mpi spawner.
> This is another problem but I have not investigated this problem yet. I'll 
> work on this later.
> 
> The following problem might be fixed in the latest version, but any comments 
> and suggestions are appreciated.
> Here is part of my code. 
> The main data structure is a 3-dimensional array, which is declared as a 
> distributed array that each of its element refers to a 2-dimension array.
> You can see array copy statement (liBlock = lkji_tiles(k,k,k+1).tile_array;) 
> in Line 11. I want to use this copy statement because the Chapel compiler 
> generates bulk transfer code, which accelerates program execution.
> 
> // Code
> 1: const zero: int(32) = 0;
> 2: var tile_array_indices = {zero..tileSize-1,zero..tileSize-1};
> 3: class Tile {
> 4:    var tile_array: [tile_array_indices] real;
> 5: }
> 6: var proto_ijk_space = {zero..numTiles_2-1, zero..numTiles_2, 
> zero..numTiles_2};
> 7: var ijk_space = proto_ijk_space dmapped Block(boundingBox=proto_ijk_space);
> 8: var lkji_tiles: [ijk_space] Tile;
> ...
> 9 :begin {
>    ...
> 10:   var liBlock: [tile_array_indices] real;
> 11:   liBlock = lkji_tiles(k,k,k+1).tile_array;
> 12:   for (m,n) in tile_array_indices {
> 13:     if (liBlock(m,n) != lkji_tiles(k,k,k+1).tile_array(m,n)) {
> 14:        invalid = true;
> 15:     }
> 16:   }
> 17:   if (invalid) { writln("Copy Failed");}
> 18:   ...
> 19: }
> ...
> 
> In my experiment, when running the program on 2 or more locales, the program 
> prints "Copy Failed" which means  "liBlock = lkji_tiles(k,k,k+1).tile_array;" 
> in Line 11 failed.
> This happens sometime (not always). and I confirmed the copy is successfully 
> done if I replace the array copy in Line 11 with copy loop.
> Additionally, I also see the same behavior when I replace the array copy in 
> Line 11 with liBlock._value.doiBulkTransfer(lkji_tiles(k,k,k+1).tile_array);.
> 
> Here is an output log at runtime when I compile the program with -s 
> debugBulkTransfer (tileSize=200):
> 
> -- Log starts here
> In DefaultRectangularArr.doiBulkTransfer(): Alo=(0, 0), Blo=(0, 0), 
> len=40000, elemSize=8;
> -- End of Log
> 
> In both cases, the runtime internally calls chpl_comm_get API(*) and the API 
> takes the above parameters.
> I think it looks good.
> (*) Please take a look at doiBulkTransfer function in 
> CHPL_HOME/modules/internal/DefaultRectangular.chpl
> 
> Any comments and suggestions are appreciated.
> 
> Best regards,
> 
> Akihiro
> ------------------------------------------------------------------------------
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today. 
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
> _______________________________________________
> Chapel-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/chapel-developers

__
Rafael Asenjo Plaza
Dept. Arquitectura de Computadores      
Complejo Tecnologico Campus de Teatinos
E-29071 MALAGA (SPAIN)
Tel: +34 95 213 27 91
Fax: +34 95 213 27 90        
http://www.ac.uma.es/~asenjo


------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Chapel-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-developers

Reply via email to