9
Foundation API The Fast Version

Foundation API The Fast Version. Follow my examples Example: building App for GMAP on Stampede Materials are in the Data Store: – Community Data/iplantcollaborative/example_data/gmap

Embed Size (px)

Citation preview

Page 1: Foundation API The Fast Version. Follow my examples Example: building App for GMAP on Stampede Materials are in the Data Store: – Community Data/iplantcollaborative/example_data/gmap

Foundation API

The Fast Version

Page 2: Foundation API The Fast Version. Follow my examples Example: building App for GMAP on Stampede Materials are in the Data Store: – Community Data/iplantcollaborative/example_data/gmap

Follow my examples

• Example: building App for GMAP on Stampede• Materials are in the Data Store:– Community

Data/iplantcollaborative/example_data/gmap– /iplant/home/shared/iplantcollaborative/

example_data/gmap

Page 3: Foundation API The Fast Version. Follow my examples Example: building App for GMAP on Stampede Materials are in the Data Store: – Community Data/iplantcollaborative/example_data/gmap

Key Steps1. Binaries available on the target server?

a. Is it the appropriate server?b. How many threads? MPI?

2. Make a test wrapper.3. Modify the wrapper for the API4. Make a json to match your wrapper.5. Test the API application with the Test

Application6. Build a DE App to match the API application

Page 4: Foundation API The Fast Version. Follow my examples Example: building App for GMAP on Stampede Materials are in the Data Store: – Community Data/iplantcollaborative/example_data/gmap

Binaries1. Binaries available on the target server?

a. Is it the appropriate server? Does it require more than 24 hrs for typical use?

b. Is there a module available?c. How many threads? MPI?

Page 5: Foundation API The Fast Version. Follow my examples Example: building App for GMAP on Stampede Materials are in the Data Store: – Community Data/iplantcollaborative/example_data/gmap

Test Wrapper

• Bash script• Take data from the data store• Pull binaries from the data store unless there is a

module available• Include all the options users may commonly need

(target more for beginner than for expert)• Test wrapper should be able to run on the queue for

the chosen server in an empty directory (think of the exec node that will run your app, your data cold, no preparation)

Page 6: Foundation API The Fast Version. Follow my examples Example: building App for GMAP on Stampede Materials are in the Data Store: – Community Data/iplantcollaborative/example_data/gmap

Modified Wrapper (API-ready)

• The API will take care of some of the routine functions

• Remove queue configurations• Remove test entries• Remove icommands for loading in binaries• Put finished wrapper in a data store directory

for the application (e.g.

/iplant/rogerab/username/applications/gmap12)

Page 7: Foundation API The Fast Version. Follow my examples Example: building App for GMAP on Stampede Materials are in the Data Store: – Community Data/iplantcollaborative/example_data/gmap

Make a json

• Enter in key API-needed entries (first section)• Enter in your inputs, options, etc.• Test the json for proper formatting• Upload the json into the system– e.g. curl -sku "rogerab:XXXXXX" -X POST -F

"[email protected]" https://foundation.iplantc.org/apps-v1/apps | python -mjson.tool

Page 8: Foundation API The Fast Version. Follow my examples Example: building App for GMAP on Stampede Materials are in the Data Store: – Community Data/iplantcollaborative/example_data/gmap

Test with the Test Application

• https://foundation.iplantcollaborative.org/iplant-test/

• Log in, find your app, generate a job form (Apps Service)

• Monitor progress under Job Service

Page 9: Foundation API The Fast Version. Follow my examples Example: building App for GMAP on Stampede Materials are in the Data Store: – Community Data/iplantcollaborative/example_data/gmap

Build an App in the DE

• Use “foundational_api_adapter.pl” for application• Input entries and options all need to match the json,

the wrapper script• Foundation API-specific entries are also needed– App id (--appid)– Run time (--requestedTime)– Max memory (--maxMemory)– Number of processors (--processorCount)

• For guidance, make copies of existing API apps and look at specific configurations