Upload
annabelle-sparks
View
214
Download
0
Embed Size (px)
Citation preview
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– /iplant/home/shared/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
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?
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)
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)
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
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
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