Sign inSign up

bearsrus/arkouda-smp-developer

By bearsrus

Updated over 2 years ago

Image
0

909

bearsrus/arkouda-smp-developer repository overview

arkouda-smp-developer

Background

The arkouda-smp-developer image enables Arkouda developers to mount whichever directories they are working in (arkouda for Python, src for Chapel) to the arkouda-smp-developer docker container and be able to develop, build, and test within a pre-built Chapel and Arkouda dependencies stack. Since the GASNET_COMM_SUBSTRATE is smp, the developer can execute multi-locale Arkouda testing with the arkouda-smp-developer container.

Building arkouda-smp-developer Image

The arkouda-smp-developer Docker build sequence is very similar to the arkouda-smp-server build sequence, an example of which is shown below:

export CHAPEL_SMP_IMAGE=bearsrus/chapel-gasnet-smp:1.33.0
export ARKOUDA_BRANCH_NAME=2024.03.18
export ARKOUDA_DISTRO_NAME=v2024.03.18
export ARKOUDA_DOWNLOAD_URL=https://github.com/Bears-R-Us/arkouda/archive/refs/tags/v2024.03.18.zip
export ARKOUDA_IMAGE_REPO=bearsrus

docker build --build-arg CHAPEL_SMP_IMAGE=$CHAPEL_SMP_IMAGE \
             --build-arg ARKOUDA_DISTRO_NAME=$ARKOUDA_DISTRO_NAME \
             --build-arg ARKOUDA_DOWNLOAD_URL=$ARKOUDA_DOWNLOAD_URL \
             --build-arg ARKOUDA_BRANCH_NAME=$ARKOUDA_BRANCH_NAME \
             -f arkouda-smp-developer -t $ARKOUDA_IMAGE_REPO/arkouda-smp-developer:$ARKOUDA_DISTRO_NAME .

Running arkouda-smp-developer

Running arkouda-smp-developer with a directory mounted enables building, testing, and running Arkouda in GASNET smp mode within a Docker container. An example docker run command is shown below, where arkouda-smp-developer Docker container is launched from the Arkouda project root directory and the Chapel src directory is mounted:

# set env variables
export ARKOUDA_IMAGE_REPO=bearsrus
export ARKOUDA_VERSION=v2024.03.18

docker run -it --rm -v $PWD/src:/opt/arkouda/src bearsrus/arkouda-smp-developer:v2024.03.18 

Once the arkouda-smp-developer Docker container is started, any changes to the files within the mounted directory are permanent and retained after the Docker container is stopped. In the above example, the developer writes Chapel code and tests within the arkouda-smp-developer Docker container. Once development is complete, the Docker container can be stopped and the updated Chapel files are ready for further development, commit and check-in to github, etc...

Known Issue and Resolution

Occasionally there are 1..n breaking changes introduced into Arkouda post-release tag that require the arkouda-smp-developer image to be built off the Arkouda master branch. For example, if new Chapel compat module(s) are added, the arkouda-smp-developer must be built off the Arkouda master branch.

An example arkouda-smp-developer master branch build is as follows:

export CHAPEL_SMP_IMAGE=bearsrus/chapel-gasnet-smp:1.33.0
export ARKOUDA_BRANCH_NAME=master
export ARKOUDA_DISTRO_NAME=master
export ARKOUDA_DOWNLOAD_URL=https://github.com/Bears-R-Us/arkouda/archive/refs/heads/master.zip
export ARKOUDA_IMAGE_REPO=bearsrus

docker build --build-arg CHAPEL_SMP_IMAGE=$CHAPEL_SMP_IMAGE \
             --build-arg ARKOUDA_DISTRO_NAME=$ARKOUDA_DISTRO_NAME \
             --build-arg ARKOUDA_DOWNLOAD_URL=$ARKOUDA_DOWNLOAD_URL \
             --build-arg ARKOUDA_BRANCH_NAME=$ARKOUDA_BRANCH_NAME \
             -f arkouda-smp-developer -t $ARKOUDA_IMAGE_REPO/arkouda-smp-developer:$ARKOUDA_DISTRO_NAME .

Tag summary

Content type

Image

Digest

sha256:c433d2e17

Size

687.5 MB

Last updated

over 2 years ago

docker pull bearsrus/arkouda-smp-developer