-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3513a95
commit a91126e
Showing
18 changed files
with
285 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
Manifest.toml | ||
docs/build/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,31 +8,31 @@ julia: | |
- 1.0 | ||
- 1.1 | ||
- nightly | ||
|
||
matrix: | ||
allow_failures: | ||
- julia: nightly | ||
|
||
notifications: | ||
email: | ||
recipients: | ||
- [email protected] | ||
on_success: never | ||
on_failure: always | ||
|
||
|
||
cache: | ||
directories: | ||
- /home/travis/.julia/packages/MPI/ | ||
#MPI.jl needs mpi binaries plus compilers avalible | ||
|
||
#MPI.jl needs mpi binaries plus compilers avalible | ||
addons: | ||
apt: | ||
packages: | ||
- gfortran | ||
- mpich | ||
- libmpich-dev | ||
|
||
before_script: | ||
- | | ||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then | ||
|
@@ -41,7 +41,20 @@ before_script: | |
brew cask uninstall oclint # Prevent conflict with gcc | ||
brew install mpich | ||
fi | ||
before_install: | ||
- export CC=mpicc | ||
- export FC=mpif90 | ||
|
||
|
||
# generate documentation | ||
jobs: | ||
include: | ||
- stage: "Documentation" | ||
julia: 1.1 | ||
os: linux | ||
script: | ||
- julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); | ||
Pkg.instantiate()' | ||
- julia --project=docs/ docs/make.jl | ||
after_success: skip |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
[deps] | ||
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" | ||
|
||
[compat] | ||
Documenter = "~0.21" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
using Documenter, JuliaPetra | ||
|
||
makedocs( | ||
modules = [JuliaPetra], | ||
sitename="JuliaPetra", | ||
pages = [ | ||
"Home" => "index.md", | ||
"Communcation Layer" => "CommunicationLayer.md", | ||
"Problem Distribution Layer" => "ProblemDistributionLayer.md", | ||
"Linear Algebra Layer" => "LinearAlgebraLayer.md" | ||
]) | ||
|
||
|
||
deploydocs( | ||
repo = "github.com/collegeville/JuliaPetra.jl.git" | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# Communications Layer | ||
|
||
```@meta | ||
CurrentModule = JuliaPetra | ||
``` | ||
|
||
JuliaPetra abstracts communication with the [`Comm`](@ref) and [`Distributor`](@ref) interfaces. | ||
There are two communication implementations with JuliaPetra [`SerialComm`](@ref) and [`MPIComm`](@ref). | ||
Note that most objects dependent on inter-process communication support the [`getComm`](@ref) method. | ||
|
||
## Interface | ||
|
||
```@docs | ||
Comm | ||
Distributor | ||
``` | ||
|
||
### Functions | ||
|
||
```@docs | ||
getComm | ||
barrier | ||
broadcastAll | ||
gatherAll | ||
sumAll | ||
maxAll | ||
minAll | ||
scanSum | ||
myPid | ||
numProc | ||
createDistributor | ||
createFromSends | ||
createFromRecvs | ||
resolve | ||
resolvePosts | ||
resolveWaits | ||
resolveReverse | ||
resolveReversePosts | ||
resolveReverseWaits | ||
``` | ||
|
||
## Implementations | ||
|
||
```@docs | ||
LocalComm | ||
SerialComm | ||
SerialDistributor | ||
MPIComm | ||
MPIDistributor | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# Linear Algebra Layer | ||
|
||
```@meta | ||
CurrentModule = JuliaPetra | ||
``` | ||
|
||
The Linear Algebra layer provides the main abstractions for linear algebra codes. | ||
The two top level interfaces are [`MultiVector`](@ref), for groups of vectors, and [`Operator`](@ref), for operations on `MultiVector`s. | ||
|
||
## MultiVectors | ||
|
||
MutliVectors support many basic array functions, including broadcasting. | ||
Additionally, [`dot`] and [`norm`] are supported, however they return arrays since [`MultiVector`]s may have multiple dot products and norms. | ||
|
||
```@docs | ||
MultiVector | ||
DenseMultiVector | ||
localLength | ||
globalLength | ||
numVectors | ||
getVectorView | ||
getVectorCopy | ||
getLocalArray | ||
commReduce | ||
``` | ||
|
||
## Operators | ||
|
||
`Operator`s represent an operation on a [`MultiVector`](@ref), such as a matrix which applies a matrix-vector product. | ||
|
||
```@docs | ||
Operator | ||
getRangeMap | ||
getDomainMap | ||
apply! | ||
apply | ||
TransposeMode | ||
isTransposed | ||
applyConjugation | ||
``` | ||
|
||
### Matrices | ||
|
||
Sparse matrices are the primary [`Operator`](@ref) in JuliaPetra. | ||
|
||
```@docs | ||
RowMatrix | ||
CSRMatrix | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
# Problem Distribution Layer | ||
|
||
```@meta | ||
CurrentModule = JuliaPetra | ||
``` | ||
|
||
The Problem Distribution Layer managers how the problem is distributed across processes. | ||
The main type is [`BlockMap`](@ref) which represents a problem distribution. | ||
|
||
## BlockMap | ||
|
||
```@docs | ||
BlockMap | ||
lid | ||
gid | ||
myLID | ||
myGID | ||
remoteIDList | ||
minAllGID | ||
maxAllGID | ||
minMyGID | ||
maxMyGID | ||
minLID | ||
maxLID | ||
numGlobalElements | ||
numMyElements | ||
myGlobalElements | ||
myGlobalElementIDs | ||
uniqueGIDs | ||
sameBlockMapDataAs | ||
sameAs | ||
globalIndicesType | ||
linearMap | ||
distributedGlobal | ||
``` | ||
|
||
## Directory | ||
|
||
```@docs | ||
Directory | ||
BasicDirectory | ||
getDirectoryEntries | ||
gidsAllUniquelyOwned | ||
createDirectory | ||
``` | ||
|
||
## Converting IDs Between Maps | ||
|
||
```@docs | ||
Export | ||
Import | ||
sourceMap | ||
targetMap | ||
distributor | ||
isLocallyComplete | ||
permuteToLIDs | ||
permuteFromLIDs | ||
exportLIDs | ||
remoteLIDs | ||
remotePIDs | ||
numSameIDs | ||
``` | ||
|
||
## Converting Data Structures Between Maps | ||
|
||
Converting data structures between maps is built on the [`DistObject`](@ref) and [`SrcDistObject`](@ref) interfaces. | ||
|
||
```@docs | ||
DistObject | ||
SrcDistObject | ||
CombineMode | ||
getMap | ||
checkSizes | ||
copyAndPermute | ||
packAndPrepare | ||
unpackAndCombine | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# JuliaPetra | ||
|
||
JuliaPetra is an implmentation of [Trilinos's Petra Object Model](https://trilinos.github.io/data_service.html#trilinos-packages) in Julia. | ||
It is a basic framework for distributed sparse linear algebra. | ||
Note that JuliaPetra uses Single Program Multiple Data parallelism instead of the master/worker parallelism often used in Julia. | ||
|
||
# Organization | ||
JuliaPetra is organized into a series of layers. | ||
* The [Communications Layer](@ref) contains an interface for Single Program Multiple Data parallel systems | ||
* The [Problem Distribution Layer](@ref) manages how the problem is distributed across the processes | ||
* The [Linear Algebra Layer](@ref) provides the interfaces and implementations for linear algebra objects |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.