-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #29 from Bears-R-Us/sanbox-prod-partitioning
Partitioning Arkouda-NJIT into Arachne and Arachne-Development
- Loading branch information
Showing
71 changed files
with
210 additions
and
777 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
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,64 +1,43 @@ | ||
## Arachne: An Arkouda Package for Large-Scale Graph Analytics | ||
## Arkouda-NJIT | ||
This is an external repository to build functionality for [Arkouda](https://github.com/Bears-R-Us/Arkouda) with a focus on advanced graph processing. It is built with the same structure as [arkouda-contrib](https://github.com/Bears-R-Us/arkouda-contrib) to manage modules and easily swap between the production (`arachne`) and development (`arachne_development`) directories. | ||
|
||
## Purpose | ||
## Prerequisites | ||
1. Download and build [Chapel](https://chapel-lang.org/download.html). | ||
2. Download but **do not build** [Arkouda](https://github.com/Bears-R-Us/arkouda). **We recommend using the most recent release.** | ||
3. Follow instructions to activate the Arkouda environment and install all [prerequisites](https://github.com/Bears-R-Us/arkouda#prerequisites-toc). **We recommend using `Anaconda` to manage all dependencies.** | ||
|
||
This is an external repo to build Graph related functionality for `Arkouda` | ||
(see https://github.com/Bears-R-Us/Arkouda) | ||
|
||
## Generate Server Code | ||
To generate the server code run the `server-config.py` file. | ||
It will generate commands which you can pipe to a shell for execution which | ||
will build the Arkouda server including the Graph server functions. | ||
## Installation | ||
Installation is performed through running the `module_configuration.py` file. The complete path to the location of `arkouda` must be specified through `ak_loc` and the complete path to the location of `arachne` should be specified through `pkg_path`. | ||
|
||
```bash | ||
# Print usage instructions | ||
python server-config.py --help | ||
|
||
# Sample invocation | ||
python server-config.py --arkouda=$ArkoudaHomeDirectory | ||
# Print usage instructions. | ||
python module_configuration.py --help | ||
|
||
# Sample execution | ||
python server-config.py --arkouda=$ArkoudaHomeDirectory | bash | ||
# Command to execute to build the Arkouda server with Arachne. | ||
python module_configuration.py --ak_loc=/complete/path/to/arkouda/ --pkg_path=/complete/path/to/arkouda-njit/arachne/ | bash | ||
``` | ||
|
||
## Client code | ||
Now we have two directories | ||
The above command will pipe the following three commands to terminal that installs Arachne using pip, copies the Arkouda server modules to a temporary file, and combines them with the Arachne server modules to build the enhanced `arkouda_server`. | ||
```bash | ||
arkouda_graph/ | ||
All graph algorithm related functions | ||
|
||
suffix_array/ | ||
All suffix array related python functions | ||
|
||
pip install -U /complete/path/to/arkouda-njit/arachne/client | ||
cp /complete/path/to/arkouda/ServerModules.cfg ~/TmpServerModules.cfg.1683320760 | ||
ARKOUDA_SERVER_USER_MODULES=" /complete/path/to/arkouda-njit/arachne/server/BuildGraphMsg.chpl /complete/path/to/arkouda-njit/arachne/server/PropertyGraphMsg.chpl /complete/path/to/arkouda-njit/arachne/server/GraphInfoMsg.chpl /complete/path/to/arkouda-njit/arachne/server/BFSMsg.chpl /complete/path/to/arkouda-njit/arachne/server/TriCtrMsg.chpl /complete/path/to/arkouda-njit/arachne/server/TriCntMsg.chpl /complete/path/to/arkouda-njit/arachne/server/TrussMsg.chpl /complete/path/to/arkouda-njit/arachne/server/CCMsg.chpl" ARKOUDA_CONFIG_FILE=~/TmpServerModules.cfg.1683320760 ARKOUDA_SKIP_CHECK_DEPS=true make -C /Users/alvaradoo/Research/arkouda | ||
``` | ||
|
||
## Server code | ||
Now we have the following chapel modules. | ||
```bash | ||
BFSMsg--for breadth first search | ||
TrussMsg--for truss analysis | ||
SuffixArrayMsg--for suffix array | ||
GraphMsg-- for the basic graph operation | ||
TriCntMsg--for triangle counting | ||
TriCtrMsg-- for triangle centrality | ||
JaccardMsg-- for Jaccard coefficients | ||
CCMsg-- for Connected Components | ||
``` | ||
The server can be started as specified in the [Arkouda documentation](https://github.com/Bears-R-Us/arkouda#running-arkouda_server-toc). To run a simple test file as well as pytests please proceed to the [arachne](arachne/) folder for those instructions. | ||
|
||
### Installing Development Arachne | ||
If you are interested in installing the development version of Arachne, please follow the same instructions as above, but for `pkg_path` include `/complete/path/to/arkouda-njit/arachne_development/`. | ||
|
||
## Test code | ||
```bash | ||
client: Python test code | ||
benchmarks: different benchmark code | ||
server: | ||
UnitTestCh: chaple unit testing code of the extended functions | ||
## Usage Notes | ||
```python | ||
import arkouda as ak | ||
import arachne as ar | ||
# code using arachne and arkouda below | ||
``` | ||
|
||
|
||
## Call extended functions | ||
```bash | ||
(1) Under the master arkouda directory, copy the arkouda-njit directory to here and rename it as arkouda_njit or | ||
create a arkouda_njit link to the arkouda-njit directory | ||
(2) import arkouda_njit as njit | ||
(3) call all the extended function as njit.function | ||
``` | ||
## Common Issues | ||
* **Issue**: Unrecognized HDF5, Apache Arrow, etc. installations. | ||
**Fix**: Ensure `Makefile.paths` was properly added to the base Arkouda directory. More information can be found in the [Arkouda build instructions](https://github.com/Bears-R-Us/arkouda#building-arkouda-toc). | ||
* **Issue**: Arkouda or Arachne functions are not recognized when executing scripts. | ||
**Fix**: Make sure to run `pip3 install -e .` at both `/complete/path/to/arkouda-njit/arachne/client/.` and `/complete/path/to/arkouda/.` This issue should not pop up for Arachne if the commands generated by `module_configuration.py` are piped to the terminal. |
This file was deleted.
Oops, something went wrong.
Binary file not shown.
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
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.