Hi I have been working with Lawrence Mitchell and Michele Weiland at EPCC to add OpenMP support to the mat/vec classes and we are at the stage that we would like to give other other people a chance to play with it.
Lawrence put a branch on bitbucket if you want to browse: https://bitbucket.org/wence/petsc-dev-omp/overview I think that there is a lot in there that needs discussion(/modification), so I propose that we try to break this into a number of discussions/steps (also I do not want to write a several page email). I am making the assumption here that OpenMP is interesting enough to want to put in PETSc. Other than the garden variety multicore, it can also be used on Intel MIC. Does this need further discussion? As a first step - can we add OpenMP support to PETSc conf? Lawrence made a first pass at this: https://bitbucket.org/wence/petsc-dev-omp/src/52afd5fd2c25/config/PETSc/packages/openmp.py It does need extending because it will fail in it is current state for a number of compilers. I am guessing we would have to reimplement something like ax_openmp or similar...what is the right thing to do here? Regarding cmake - I only recently learned cmake myself and I have been using: FIND_PACKAGE(OpenMP) (i.e. cmake does all the heavy lifting in FindOpenMP.cmake which it provides). However, as PETSc does not appear to use the find_package feature I am not sure what approach should be adopted for PETSc. Suggestions? Cheers Gerard