History log of /petsc/src/mat/interface/matregis.c (Results 151 – 175 of 390)
Revision Date Author Comments
# 145b24f9 25-Dec-2014 Barry Smith <bsmith@mcs.anl.gov>

You moved PETSC_EXTERN MatRegisterAll() to matimpl.h but
did not change the matregis.c to include matimpl.h hence it did not know
that it was extern "C"

Please please please always test with C++ bef

You moved PETSC_EXTERN MatRegisterAll() to matimpl.h but
did not change the matregis.c to include matimpl.h hence it did not know
that it was extern "C"

Please please please always test with C++ before pushing to next etc

show more ...


# 0f51fdf8 13-Dec-2014 Toby Isaac <tisaac@ices.utexas.edu>

Remove XXXRegisterAllCalled from public interface.

All XXXRegisterAll() methods are now idempotent, so a boolean indicating
whether they can be called or not is no longer necessary.


# 9c925a2c 18-Mar-2014 Shri <abhyshr@mcs.anl.gov>

Merge branch 'master' into shri/ts-events

Conflicts:
src/ts/interface/ts.c


# edbbd480 10-Dec-2013 Barry Smith <bsmith@mcs.anl.gov>

Merge branch 'master' into barry/xcode


# 256ff83f 11-Sep-2013 Barry Smith <bsmith@mcs.anl.gov>

Merge branch 'master' into barry/wirth-fusion-materials

Conflicts:
src/ts/examples/tutorials/advection-diffusion-reaction/ex10.c


# cc85fe4d 04-Sep-2013 Barry Smith <bsmith@mcs.anl.gov>

Merge branch 'barry/dmvecmattypes' into barry/saws

Needed to work with version of PETSc that did not have constant calls to VecSetFromOptions() etc

Conflicts:
src/ksp/ksp/interface/ams/kspams.c
s

Merge branch 'barry/dmvecmattypes' into barry/saws

Needed to work with version of PETSc that did not have constant calls to VecSetFromOptions() etc

Conflicts:
src/ksp/ksp/interface/ams/kspams.c
src/snes/impls/composite/snescomposite.c
src/snes/impls/gs/snesgs.c
src/snes/impls/nasm/nasm.c
src/snes/impls/ngmres/snesngmres.c

show more ...


# c0c93d0e 28-Aug-2013 Matthew G. Knepley <knepley@gmail.com>

Merge branch 'master' into knepley/feature-dmda-section

* master: (287 commits)
Mat ex170: Comments
VTK: Small fix to error message (.vts to .vtu)
VTK: Small fix to error message
Fixed bib e

Merge branch 'master' into knepley/feature-dmda-section

* master: (287 commits)
Mat ex170: Comments
VTK: Small fix to error message (.vts to .vtu)
VTK: Small fix to error message
Fixed bib entries
Bib: Updates
AO: fix erroneous processing of -ao_view and factor into AOViewFromOptions
doc: fix named argument in {Vec,Mat,DM}ViewFromOptions
Sys: add PetscDataTypeFromString() and test code
Mat: Should say that it has a nullspace in MatView()
parms: update tarball with fix for namespace conflict with metis
fix citation 'Golub_Varga_1961'
parmetis: update tarball to parmetis-4.0.2-p5 which fixes an install issue with cygwin
Sys Logging: revert parent traversal
fixed hdf5.py so that if self.libraries.compression is None the code still runs correctly
DMDA: fix bad cast of DM_DA to PetscObject
MatClique: follow DistMultiVec API changes
MatClique: remove unused variables
config cmakeboot: add C++ flags any time compiler is available
config OpenMP: check for C++ flag any time the compiler is available
replaced all left-over uses of a single PetscMalloc() to allocated multiple arrays: replaced with PetscMallocN() The only ones left are when the second array is set into the first array and one ugly usage in the MUMPS interface that cannot be easily fixed
...

show more ...


# b0418fcf 25-Jul-2013 Stefano Zampini <stefano.zampini@gmail.com>

Merge remote-tracking branch 'origin/master' into stefano_zampini/pcbddc-improvelocalsolvers


# 8533652c 25-Jul-2013 Stefano Zampini <stefano.zampini@gmail.com>

Merge remote-tracking branch 'origin/master' into stefano_zampini/pcbddc-mirrorsfix


# 6daa6ed0 25-Jul-2013 Stefano Zampini <stefano.zampini@gmail.com>

Merge remote-tracking branch 'origin/master' into stefano_zampini/pcbddc-constraintssetupimproved


# 72cfe0ad 23-Jul-2013 Karl Rupp <rupp@iue.tuwien.ac.at>

Merge branch 'paulmullowney/txpetscgpu-package-removal'


# 1019ffe6 20-Jul-2013 Matthew G. Knepley <knepley@gmail.com>

CUDA: CUSPARSE still includes CUSP headers, so change the guards


# b06137fd 27-Jun-2013 Paul Mullowney <paulm@txcorp.com>

Removing TXPETSCGPU from veccusp and mpiaijcusparse

In this next step of removing TXPETSCGPU, the host-device and
device-host messaging code has been significantly simplified. In
particular, all met

Removing TXPETSCGPU from veccusp and mpiaijcusparse

In this next step of removing TXPETSCGPU, the host-device and
device-host messaging code has been significantly simplified. In
particular, all methods VecCUSPCopyToGPU/FromGPU now use
a cudaMemcpyAsync with a stream (and a stream synchronize()).
This never hurts you. Moreover, it can help you in the case
of the multi-GPU SpMV as this data transfer will overlap
with the MatMult kernel. The more signficant change comes in
VecCUSPCopyToGPUSome and VecCUSPCopyFromGPUSome. In this code,
the data transfer now moves the smallest contiguous set of
vector data containing ALL the indices in a single asynchronous data
transfer. Then, the stream containing the data transfer is
synchronized (not the entire device). While this can be wasteful
in terms of messaging too much data, it has shown the best
scalability performance across a wide range of matrices. Lastly
the simplicity of the code is a significant advantage over
the old way of doing the data transfer. Some old cold
in these methods is "if 0"-ed out for reference and will be
cleaned up later. One final optimization in the vector code
involves registering the host buffer as page locked--which
is done in VecCUSPAllocateCheck. Then, the buffer must be
unregistered at VecDestroy_SeqCUSP. This shows a nice
speedup in the data transfer for a parallel MatMult.

Also in this commit, I am removing the TXPETSCGPU dependence from
the mpiaijcusparse class--it now depends only on CUDA. In order
for the same stream to be used in the MatMult and MatMultAdd
(necessary for an optimal Multi-GPU SpMV), the stream is built
in the mpiaijcusparse and then passed in the seqaijcusparse data
structure via a new method (MatCUSPARSESetStream). A similar method
is added for the CUSPARSE library handle (context) as I think the
stream needs to be attached to a particular context to work properly.
When running in parallel, multiple GPUs, the references to the handle
in the seqaijcusparse are cleared from the mpiaijcusparse classes with
the method MatCUSPARSEClearHandle. Then, the mpiaijcusparse class
deletes the handle.

One other non-trivial change was made to the seqaijcusparse. The alpha
and beta parameters to the SpMV are now device data which is owned by
the Mat_SEQAIJCUSPARSEMultStruct structure. This enables slightly better
multi-GPU performance as this data does not need to be copied to the
GPU at each kernel launch.

Multi-GPU SpMV now works without TXPETSCGPU and the performance is recovered
as tested on up to 4 GPUs. Code is valgrind clean and cuda-memcheck clean.

Results of tests have been modified to have 1 less digit of precision. This
yields consistent results across different GPUs. Lastly, the parallel test
is set to run on a different matrix (shallow_water1) so that the iteration
actually converges.

show more ...


# aa372e3f 20-Jun-2013 Paul Mullowney <paulm@txcorp.com>

Removal of TXPETSCGPU package from the SEQAIJCUSPARSE class

In this commit, I've removed the dependence of the SEQAIJCUSPARSE
class on the TXPETSCGPU package. However, other classes such as
SEQAIJCU

Removal of TXPETSCGPU package from the SEQAIJCUSPARSE class

In this commit, I've removed the dependence of the SEQAIJCUSPARSE
class on the TXPETSCGPU package. However, other classes such as
SEQAIJCUSP, VECCUSP, and MPIAIJCUSPARSE, and MPIAIJCUSP still depend
on that package. These dependencies will be removed in subsequent
commits once the design and structure is agreed upon.

The reason for this dependency removal is that SEQAIJCUSPARSE only
depends on the Nvidia CUSPARSE library which comes standard with CUDA.
Thus, the SEQAIJCUSPARSE class should be built whenever PETSc is
built with CUDA support. This will be far more maintanable in the
long term. Lastly, most of the CUSP dependencies have been removed
from this class. The only remaining CUSP dependencies are in the
vector data structures used in MatMult* and MatSolve* methods.
These will be removed in a subsequent branch as it is not clear
what the architecture should be yet.

In order to accomodate all the different functionality for various
Krylov solves, two new data structures were defined in cusparsematimpl.h.
The first is a Mat_SeqAIJCUSPARSEMultStruct struct. This contains an opaque pointer
for a matrix, a MatDescription data structure, and indices vector which will
be useful in MatMultAdd functions. The second new data structure is a
Mat_SeqAIJCUSPARSETriFactorStruct struct. This contains an CSR Matrix pointer,
a MatDescription data structure, a solve analysis data structure and an
operation type.

Next, Mat_SeqAIJCUSPARSETriFactors was redefined to hold pointers
to up to 4 different Mat_SeqAIJCUSPARSETriFactorStruct structs: one for lower
and one for upper solves for both ILU and ICC. Two more for lower and upper
solves in algorithms that require a transpose, such as BiCG. The
latter two are necessary, as far as I can tell, because one doesn't
know until runtime if data structures for the transpose are needed
Thus, those are created on demand. Indexing vectors for reorderings
are also stored in Mat_SeqAIJCUSPARSETriFactors.

Lastly, Mat_SeqAIJCUSPARSE is the data structure that holds the
data needed in multiply. There are 2 pointers to Mat_SeqAIJCUSPARSEMultStruct
structs for MatMult and MatMultTranspose. Several auxilliary data
structures like workvectors and few other necessary data for MatMult
are also stored in here. One important variable, the cudaStream_t,
is stored here but it is not owned. Streams are necessary for the parallel
SpMV (a subsequent commit will add code setting stream variables from
the MPIAIJCUSPARSE class) and the matrices used in the MatMult and
MatMultAdd will then use the same stream identifier to attain optimal
performance. The MPIAIJCUSPARSE class will own the stream variable which
is then used in the SEQAIJCUSPARSE methods.

In matregis.c as well as the petscmat.h and finclude/petscmat.h,
I've changed the dependency of SEQAIJCUSPARSE to be on CUDA and
not TXPETSCGPU.

The test series TESTEXAMPLES_TXPETSCGPU has been changed to
TESTEXAMPLES_CUDA since SEQAIJCUSPARSE only depends on CUDA as
discussed above. ksp/ksp/examples/tests/ex43-aijcusparse.c has
been renamed to ksp/ksp/examples/tests/ex43.c, the targets in
the makefile have been changed appropriately and the results
fiels are renamed. Two new test targets were added in
ksp/ksp/examples/tests/makefile that test aijcusparse using
bicg (and thus the MatSolveTranspose and MatMultTranspose methods) as well as
bicg with reordering. The previous results for runex43_2.out (formerly
runex43-aijcusparse_2.out) were wrong and so I'm committing
new results that agree with CPU based computation. The code is
valgrind clean and cuda-memcheck clean.

show more ...


# 9e483975 13-Jun-2013 Karl Rupp <rupp@iue.tuwien.ac.at>

Merge branch 'karlrupp/feature-viennacl'


# ab6435e1 04-Apr-2013 Karl Rupp <rupp@iue.tuwien.ac.at>

ViennaCL: Updated code for new interface to PetscObjectComposeFunction() and XXXRegister()


# 8f86e40f 18-Mar-2013 Karl Rupp <rupp@iue.tuwien.ac.at>

ViennaCL: Added MPI-implementation for AIJ matrices.

Follows the existing interface for CUSP and CUSPARSE.
Compiles and passes standard 'make test'. No additional testing performed yet.


# d67ff14a 16-Mar-2013 Karl Rupp <rupp@iue.tuwien.ac.at>

ViennaCL: Added sequential AIJ matrix.

Compiles, 'make test' passes. Further testing required.
Injects similar to PETSC_HAVE_CUSP into existing functions.
A general concept for dealing with accelera

ViennaCL: Added sequential AIJ matrix.

Compiles, 'make test' passes. Further testing required.
Injects similar to PETSC_HAVE_CUSP into existing functions.
A general concept for dealing with accelerators is required here, but postponed after release 3.4.
aijAssemble.cpp is a stub, also row-compressed CSR is not yet supported.

show more ...


# 7e7d4f0d 10-Apr-2013 Richard Mills <rtm@eecs.utk.edu>

Merged petsc/petsc into rmills/petsc master


# 8a1af44d 03-Apr-2013 Jed Brown <jed@59A2.org>

Merge branch 'barry/rm-xxxregisterdynamic'

* barry/rm-xxxregisterdynamic:
Registration: remove stale 'XXRegisterDynamic)' entries in man pages
TS examples: fix use of PetscFunctionList and add t

Merge branch 'barry/rm-xxxregisterdynamic'

* barry/rm-xxxregisterdynamic:
Registration: remove stale 'XXRegisterDynamic)' entries in man pages
TS examples: fix use of PetscFunctionList and add to nightlies
Changes: Note updates to XRegisterDynamic/PetscObjectComposeFunctionDynamic
PetscObjectComposeFunctionDynamic: remove stale docs and usage
developers.tex: remove complications from function composition with dlls
removed string version of function name for XXXRegister(), PetscFunctionListAdd() and PetscObjectComposeFunction()
changes: document PetscFunctionListAdd() API change
developers.tex: update documentation of PetscObjectComposeFunction
removed path and MPI_Comm arguments from PetscFunctionListFind/Add()
removed path argument to XXXInitializePackage() and XXXRegister()
removed XXXRegisterDynamic() but kept the APIs for everything else underneath the same phase I of the update to handling registering function pointers

show more ...


# e1d27e54 28-Mar-2013 Jed Brown <jed@59A2.org>

Merge branch 'barry/rm-xxxregisterdynamic' into jed/ts-eimex

PetscObjectComposeFunctionDynamic() and TSRegisterDynamic() were
replaced by PetscObjectComposeFunction() and TSRegister(), both of which

Merge branch 'barry/rm-xxxregisterdynamic' into jed/ts-eimex

PetscObjectComposeFunctionDynamic() and TSRegisterDynamic() were
replaced by PetscObjectComposeFunction() and TSRegister(), both of which
drop the string name argument.

* barry/rm-xxxregisterdynamic: (82 commits)
...

Conflicts:
src/ts/interface/tsregall.c

show more ...


# bdf89e91 26-Mar-2013 Barry Smith <bsmith@mcs.anl.gov>

removed string version of function name for XXXRegister(), PetscFunctionListAdd() and PetscObjectComposeFunction()


# 607a6623 26-Mar-2013 Barry Smith <bsmith@mcs.anl.gov>

removed path argument to XXXInitializePackage() and XXXRegister()


# 1c84c290 25-Mar-2013 Barry Smith <bsmith@mcs.anl.gov>

removed XXXRegisterDynamic() but kept the APIs for everything else underneath the same
phase I of the update to handling registering function pointers


# 4042b796 17-Mar-2013 Jed Brown <jed@59A2.org>

Merge branch 'master' into jed/ts-eimex

Sync to include Git conversion, PETSC_EXTERN, and minor API changes.

Conflicts:
src/ts/interface/tsregall.c


12345678910>>...16