NodeODM Tapis Application for TACC Lonestar6
NodeODM-LS6 is a specialized Tapis application configuration for running NodeODM photogrammetry processing on TACC's Lonestar6 supercomputer. It provides a seamless integration between OpenDroneMap's NodeODM and high-performance computing resources through the Tapis API framework.
- HPC Integration: Native deployment on TACC Lonestar6 vm-small queue
- Automatic Scaling: Resource allocation based on dataset size
- Web Interface: Real-time access to NodeODM during processing
- Split-Merge Support: Distributed processing for large datasets
- TAP Integration: Secure web access via TACC Access Portal
- TACC Account: Valid account with Lonestar6 access
- Tapis Authentication: JWT token for API access
- Allocation: Active TACC allocation for compute resources
- ClusterODM-Tapis: For distributed processing coordination
The application consists of three main components:
app.json: Tapis application definition with resource mappings and configurationtapisjob_app.sh: Main execution script that runs NodeODM on Lonestar6nodeodm.sh: Standalone SLURM script for direct NodeODM deployment
The app.json file defines resource allocation tiers based on dataset size:
{
"id": "nodeodm-ls62",
"version": "1.0.8-clusterodm-integration",
"runtime": "ZIP",
"runtimeOptions": ["SINGULARITY_RUN"],
"containerImage": "https://github.com/wmobley/nodeodm-ls6/releases/download/v1.0.8/nodeodm-ls6-v1.0.8.zip"
}Automatic resource selection based on image count:
| Images | Nodes | Cores/Node | Memory | Time Limit |
|---|---|---|---|---|
| ≤50 | 1 | 16 | 30GB | 2 hours |
| ≤150 | 1 | 16 | 30GB | 4 hours |
| ≤300 | 2 | 16 | 30GB | 6 hours |
| ≤600 | 3 | 16 | 30GB | 10 hours |
| ≤1000 | 4 | 16 | 30GB | 16 hours |
| ≤1500 | 6 | 16 | 30GB | 20 hours |
The tapisjob_app.sh script handles the complete processing workflow:
- Environment Setup: Load TACC modules and setup containerization
- TAP Integration: Generate authentication tokens for web access
- NodeODM Launch: Start NodeODM via Apptainer container
- Task Processing: Create and monitor photogrammetry tasks
- Result Archival: Package and transfer outputs to storage
NodeODM-LS6 is primarily designed to work with ClusterODM-Tapis for distributed processing:
- Configure ClusterODM-Tapis with your Tapis credentials
- Submit tasks via WebODM - datasets ≥50 images automatically trigger HPC processing
- Monitor progress via ClusterODM web interface
- Download results from WebODM once processing completes
For advanced users, you can submit jobs directly via Tapis API:
# Submit job with image inputs
curl -X POST "https://portals.tapis.io/v3/jobs" \
-H "X-Tapis-Token: $TOKEN" \
-H "Content-Type: application/json" \
-d @job_definition.jsonFor testing and development on Lonestar6:
# Direct SLURM submission
sbatch nodeodm.sh 4 3001
# Args: max_concurrency port
# Multi-instance cluster
sbatch single-node-multi-nodeodm.sh /path/to/images ProjectName 4
# Args: images_directory project_name nodeodm_countThe application automatically selects resources based on input dataset size. Configuration is defined in the imageSizeMapping section of app.json.
NodeODM instances are accessible via:
- TAP Portal: Automatic web interface via TACC Access Portal
- SSH Tunneling: Manual port forwarding for local access
- ClusterODM: Load-balanced access through cluster coordinator
- Input: Images uploaded via Tapis file staging
- Processing: Temporary storage on Lonestar6 scratch filesystem
- Output: Results archived to TACC cloud storage or specified location
NodeODM-LS6 works seamlessly with the broader ODM-Suite ecosystem:
- WebODM: User interface for task creation and management
- ClusterODM-Tapis: Coordination and load balancing
- NodeODM-LS6: HPC processing backend (this application)
For large datasets, the system automatically:
- Splits images into overlapping submodels
- Distributes processing across multiple NodeODM instances
- Merges results with photogrammetric accuracy
- Delivers final outputs via WebODM interface
- SLURM logs: Standard SLURM output files
- NodeODM logs: Application-specific processing logs
- TAP logs: Web access and tunneling logs
- Memory limits: Increase
memoryMBfor large datasets - Time limits: Adjust
maxJobTimefor complex processing - Network access: Verify TAP configuration for web interface
For issues and questions:
- TACC Help Desk: help@tacc.utexas.edu
- ODM Community: OpenDroneMap GitHub
- Documentation: See
CLAUDE.mdfor detailed technical information
William Mobley - wmobley@tacc.utexas.edu Research Associate, Texas Advanced Computing Center