[petsc-dev] programming model for PETSc
Barry Smith
bsmith at mcs.anl.gov
Thu Nov 24 18:37:00 CST 2011
On Nov 24, 2011, at 4:41 PM, Matthew Knepley wrote:
> On Thu, Nov 24, 2011 at 4:09 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> Jed,
>
> Let's stop arguing about whether MPI is or is not a good base for the next generation of HPC software but instead start a new conversation on what API (implemented on top of or not on top of MPI/pthreads etc etc) we want to build PETSc on to scale PETSc up to millions of cores with large NUMA nodes and GPU like accelerators.
>
> What do you want in the API?
>
> Let's start with the "lowest" level, or at least the smallest. I think the only sane way to program for portable performance here
> is using CUDA-type vectorization. This SIMT style is explained well here http://www.yosefk.com/blog/simd-simt-smt-parallelism-in-nvidia-gpus.html
> I think this is much easier and more portable than the intrinsics for Intel, and more performant and less error prone than threads.
> I think you can show that it will accomplish anything we want to do. OpenCL seems to have capitulated on this point. Do we agree
> here?
What syntax do you suggest for writing the code that is "vectorized"? What tools exist, could exist, for mapping from that syntax to what is needed by the various compilers/hardware?
For daxpy() the syntax doesn't really matter, anything will do. For other kernels: maxpy, sparse matrix vector product, triangular solves, P*A*Pt, mesh operations, sorts, indirect access .... the choice of syntax likely matters a great deal. We should test the syntax out on a wide range of kernels. For example look at VecMAXPY_kernel vs VecMAXPY_Seq vs VecMAXPY_VecCUSPMAXPY4 and the three delegators VecMAXPY_SeqPThread, VecMAXPY_MPI, and VecMAXPY_SeqCUSP;
How does data layout relate to the vectorization you are going to do on that data and vis-versa?
Barry
>
> Matt
>
>
> Barry
>
>
>
>
> --
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
More information about the petsc-dev
mailing list