Objet : Developers list for StarPU
Archives de la liste
Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data
Chronologique Discussions
- From: Jérôme Richard <jerome.richard@inria.fr>
- To: Samuel Thibault <samuel.thibault@inria.fr>
- Cc: starpu-devel@lists.gforge.inria.fr
- Subject: Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data
- Date: Wed, 31 Aug 2016 13:13:44 +0200
- List-archive: <http://lists.gforge.inria.fr/pipermail/starpu-devel/>
- List-id: "Developers list. For discussion of new features, code changes, etc." <starpu-devel.lists.gforge.inria.fr>
Hello, Ah, no, sorry, it actually is asynchronous.Fine. But therefore the following code should work, isn't it ? PS: I forgot to send the previous mail to the mailing list, here is the part of the mail (which contain the code). The simple following code seems to contain the previous issue.2. StarPU reports the following error: The data for the handle 0x2248430 is requested, but the handle does not have a valid value.That's odd. From your description you seem to be using it right.I can send a simple example where I encounter the error message.That's help understand what is going wrong. I tried to remove the calls to the partition_clean but it seems to not solve the issue. #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> #include <vector> #include <starpu.h> #include <cassert> #include <string> using namespace std; const int Nr = 63; const int Ntheta = 128; const int Nphi = 32; const int Nvpar = 15; void task_compute_preinterp(void* buffers[], void* clArgs) { printf("task_compute_preinterp\n"); } void task_compute_interp(void* buffers[], void* clArgs) { printf("task_compute_interp\n"); } void simple() { starpu_codelet codelet_compute_preinterp; starpu_codelet_init(&codelet_compute_preinterp); codelet_compute_preinterp.where = STARPU_CPU; codelet_compute_preinterp.cpu_funcs[0] = task_compute_preinterp; codelet_compute_preinterp.nbuffers = 1; codelet_compute_preinterp.modes[0] = STARPU_W; // rhs starpu_codelet codelet_compute_interp; starpu_codelet_init(&codelet_compute_interp); codelet_compute_interp.where = STARPU_CPU; codelet_compute_interp.cpu_funcs[0] = task_compute_interp; codelet_compute_interp.nbuffers = 1; codelet_compute_interp.modes[0] = STARPU_RW; // rhs starpu_data_filter f1; memset(&f1, 0, sizeof(f1)); f1.filter_func = starpu_matrix_filter_vertical_block; f1.nchildren = 1; starpu_data_handle_t tmprhs2_f_handles; vector<starpu_data_handle_t> tmprhs2_f_handles_children(f1.nchildren); starpu_matrix_data_register(&tmprhs2_f_handles, -1, 0, Nr, Nr, Ntheta, sizeof(double)); starpu_data_partition_plan(tmprhs2_f_handles, &f1, &tmprhs2_f_handles_children[0]); starpu_data_partition_submit(tmprhs2_f_handles, f1.nchildren, &tmprhs2_f_handles_children[0]); printf("parent: %x\n", tmprhs2_f_handles); for(int blockId=0 ; blockId<f1.nchildren ; ++blockId) printf(" - children: %x\n", tmprhs2_f_handles_children[blockId]); for(int blockId=0 ; blockId<f1.nchildren ; ++blockId) { const int srcBlockId = 0; const int dstBlockId = blockId; starpu_task* task = starpu_task_create(); task->cl = &codelet_compute_preinterp; task->handles[0] = tmprhs2_f_handles_children[dstBlockId]; int res = starpu_task_submit(task); assert(res == 0); } starpu_data_unpartition_submit(tmprhs2_f_handles, f1.nchildren, &tmprhs2_f_handles_children[0], -1); starpu_data_partition_clean(tmprhs2_f_handles, f1.nchildren, &tmprhs2_f_handles_children[0]); starpu_task* task = starpu_task_create(); task->cl = &codelet_compute_interp; task->handles[0] = tmprhs2_f_handles; int res = starpu_task_submit(task); assert(res == 0); starpu_data_unregister_submit(tmprhs2_f_handles); starpu_task_wait_for_all(); } int main(int argc, char* argv[]) { const int initState = starpu_init(NULL); assert(initState == 0); simple(); starpu_shutdown(); return 0; }Jérôme. |
- [Starpu-devel] Issues with asynchronous partitioning on temporary data, Jérôme Richard, 26/08/2016
- Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data, Samuel Thibault, 27/08/2016
- Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data, Samuel Thibault, 31/08/2016
- Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data, Jérôme Richard, 31/08/2016
- Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data, Samuel Thibault, 31/08/2016
- Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data, Samuel Thibault, 31/08/2016
- Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data, Samuel Thibault, 31/08/2016
- Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data, Jérôme Richard, 31/08/2016
- Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data, Samuel Thibault, 31/08/2016
- Re: [Starpu-devel] Issues with asynchronous partitioning on temporary data, Samuel Thibault, 27/08/2016
Archives gérées par MHonArc 2.6.19+.