ASTRA is a high-performance computing (HPC) shell with physics-oriented features, designed to facilitate efficient job management and resource monitoring in computational physics environments.
- HPC Job Management: Streamlined submission and monitoring of computational jobs
- Resource Monitoring: Real-time tracking of CPU, memory, and disk usage
- Physics-Oriented Tools: Specialized utilities for physics simulations and calculations
- Shell Interface: Command-line interface for efficient interaction with HPC systems
- Queue Management: Advanced job queuing and scheduling capabilities
- Logging System: Comprehensive logging for debugging and audit trails
ASTRA/
├── HPC_Job_Management.ipynb # Jupyter notebook for job management
├── LICENSE # MIT license file
├── README.md # This file
├── builtin.py # Built-in commands and functions
├── config.py # Configuration management
├── cpu.py # CPU monitoring and management
├── disk.py # Disk operations and monitoring
├── executor.py # Job execution engine
├── hpc_advanced_features.py # Advanced HPC functionalities
├── logger.py # Logging system
├── main.py # Main application entry point
├── parser.py # Command parser
├── queue.py # Job queue management
├── resource.py # Resource allocation and monitoring
├── setup.sh # Setup script
└── shell.py # Shell interface implementation
- Python 3.6 or higher
- Jupyter Notebook
- Linux/Unix environment (recommended for HPC systems)
- Clone the repository:
git clone https://github.com/Mahdi-Rashidiyan/ASTRA.git
cd ASTRA- Run the setup script:
chmod +x setup.sh
./setup.sh- Install required Python packages:
pip install -r requirements.txtNote: If
requirements.txtis not present, install the dependencies manually based on the import statements in the source files.
Launch the ASTRA shell:
python main.pyOpen the HPC job management notebook:
jupyter notebook HPC_Job_Management.ipynb| Command | Description |
|---|---|
submit |
Submit a new job to the queue |
monitor |
Monitor resource usage |
queue |
View job queue status |
cancel |
Cancel a running job |
logs |
View job logs |
Configure ASTRA by editing the config.py file:
# Example configuration settings
HPC_SETTINGS = {
'max_jobs': 100,
'default_priority': 'normal',
'log_level': 'INFO',
'resource_limits': {
'max_memory': '64GB',
'max_cpu_time': 24 # hours
}
}ASTRA provides comprehensive monitoring of:
- CPU Usage: Real-time CPU utilization and core allocation
- Memory Usage: RAM consumption and allocation patterns
- Disk I/O: Read/write operations and storage availability
- Job Status: Queue position, runtime, and completion status
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Follow PEP 8 Python style guidelines
- Add appropriate logging for new features
- Update documentation for new functionalities
- Test thoroughly in HPC environments
This project is licensed under the MIT License - see the LICENSE file for details【turn0fetch0】.
- The computational physics community for inspiration and requirements
- HPC centers for providing testing environments
- Open-source contributors who have made this project possible
For support and questions:
- Open an issue on GitHub
- Check the
HPC_Job_Management.ipynbnotebook for examples - Review the logging output for debugging information
ASTRA - Bridging the gap between high-performance computing and physics simulations with an intuitive shell interface.