@@ -32,45 +32,33 @@ namespace x {
3232 // (DPTensorX<T> & dest, const NDSlice & dest_slice, const DPTensorX<U> & val, const NDSlice & val_slice)
3333 {
3434 // const PVSlice & org_slice = dest.slice();
35- std::cerr << " _set_slice " << org_slice << " " << dest_slice << " " << val->slice () << " " << val_slice << std::endl;
3635 auto nd = org_slice.ndims ();
37- // if(dest.owner() == REPLICATED && nd > 0)
38- // std::cerr << "Warning: __setitem__ on replicated data updates local tile only" << std::endl;
3936 if (nd != dest_slice.ndims ())
4037 throw std::runtime_error (" Index dimensionality must match array dimensionality" );
4138 if (val_slice.size () != dest_slice.size ())
4239 throw std::runtime_error (" Input and output slices must be of same size" );
4340
4441 // Use given slice to create a global view into orig array
4542 PVSlice g_slc_view (org_slice, dest_slice);
46- std::cerr << " g_slice: " << g_slc_view.slice () << std::endl;
4743 // Create a view into val
4844 PVSlice needed_val_view (val->slice (), val_slice);
49- std::cerr << " needed_val_view: " << needed_val_view.slice () << " (was " << val->slice ().slice () << " )" << std::endl;
5045
5146 // we can now compute which ranks actually hold which piece of the data from val that we need locally
5247 for (rank_type i=0 ; i<theTransceiver->nranks (); ++i ) {
5348 // get local view into val
5449 PVSlice val_local_view (val->slice (), i);
55- std::cerr << i << " val_local_view: " << val_local_view.slice () << std::endl;
5650 NDSlice curr_needed_val_slice = needed_val_view.slice_of_rank (i);
57- std::cerr << i << " curr_needed_val_slice: " << curr_needed_val_slice << std::endl;
5851 NDSlice curr_local_val_slice = val_local_view.map_slice (curr_needed_val_slice);
59- std::cerr << i << " curr_local_val_slice: " << curr_local_val_slice << std::endl;
6052 NDSlice curr_needed_norm_slice = needed_val_view.map_slice (curr_needed_val_slice);
61- std::cerr << i << " curr_needed_norm_slice: " << curr_needed_norm_slice << std::endl;
6253 PVSlice my_curr_needed_view = PVSlice (g_slc_view, curr_needed_norm_slice);
63- std::cerr << i << " my_curr_needed_slice: " << my_curr_needed_view.slice () << std::endl;
6454 NDSlice my_curr_local_slice = my_curr_needed_view.local_slice_of_rank (theTransceiver->rank ());
65- std::cerr << i << " my_curr_local_slice: " << my_curr_local_slice << std::endl;
55+
6656 if (curr_needed_norm_slice.size ()) {
6757 py::tuple tpl = _make_tuple (my_curr_local_slice); // my_curr_view.slice());
6858 if (i == theTransceiver->rank ()) {
6959 // copy locally
70- std::cerr << " local copy\n " ;
7160 auto to_v = xt::strided_view (dest/* .xarray()*/ , to_xt (my_curr_local_slice));
7261 auto from_v = xt::strided_view (val->xarray (), to_xt (curr_local_val_slice));
73- std::cerr << " to: " << to_v << std::endl << " from: " << from_v << std::endl;
7462 to_v = from_v;
7563 } else {
7664 // pull slice directly into new array
@@ -92,13 +80,9 @@ namespace x {
9280 {
9381 // Use given slice to create a global view into orig array
9482 PVSlice g_slc_view (a_ptr->slice (), slice);
95- std::cerr << " g_slice: " << g_slc_view.slice () << std::endl;
9683 NDSlice my_slice = g_slc_view.slice_of_rank ();
97- std::cerr << " my_slice: " << my_slice << std::endl;
9884 NDSlice my_norm_slice = g_slc_view.map_slice (my_slice);
99- std::cerr << " my_norm_slice: " << my_norm_slice << std::endl;
10085 NDSlice my_rel_slice = a_ptr->slice ().map_slice (my_slice);
101- std::cerr << " my_rel_slice: " << my_rel_slice << std::endl;
10286
10387 theTransceiver->barrier ();
10488 _set_slice<A>(a_ptr->xarray (), a_ptr->slice (),
0 commit comments