OCTOPUS (Operation Control System for Task Optimization and Job Parallelization via a User-optimal Scheduler)
The Materials Acceleration Platform (MAP) has been facilitated to material discovery through widespread exploration of the chemical space. However, severe problems in MAP.
- The development of operating system for MAP could inevitably face complex architecture to manipulate diverse experiments simultaneously.
- As a number of experimentations execute, overlap challenges of experimental module or device could exponentially derive resource inefficiency from bottleneck of chemical process.
Therefore, we report OCTOPUS for MAP; following two strategies below.
- Operation Control system for Materials Acceleration Platform (MAP)
- User-optimal Schedulers for overlapp issues and resource allocation in realisitic platform
- Homogeneity
- Scalability
- Safety
- Versatility
- client/server-based central management system to execute closed-loop experimentation as job for multiple clients
- network protocol-aided process modularization and utilization. OCTOPUS could truly four benefits of efficiency in MAP.
- Module overlap due to device standby times
- Device overlap such as device collision or device sharing environments
- Job or task delay due to limitation of module resource
- Job parallelization using device standby times
- Task optimization with masking table
- The closed-packing schedule for optimizing module resource efficiency in realistic platform
conda env create -f requirements_conda.txt
pip install -r requirements_pip.txt
Prerequisties information is reported here.
Master Node
├── Algorithm
│ └── Manual: Manual experimentation
│ └── Bayesian: Bayesian optimization
│ └── Loss: loss function
│ └── SaveModel: directory of model pickle
├── Analysis
│ └── AnalysisUV.py: extract property from raw spectrum
├── DB
│ └── DB_Class.py: link master node with MongoDB
├── Job
│ └── Job_Class.py: realize closed-loop experimentation
│ └── JobSchduler_Class.py: control & manage jobs
│ └── JobTrigger.py: criteria of next job execution
└── Log
│ └── Client: include log file of client
│ └── Master: include log file of master
│ └── MessageAPI: consists of individual messenger
│ (telegram, facebook, kakaotalk, line, mail, dooray)
│ └── DigitalSecretary.py: integrated MessageAPI
│ └── Logging_Class.py: report all progress of client and all components of master node
│ └── Information.json: include user information about popular messenger
│ (telegram, facebook, kakaotalk, line, mail, dooray)
├── Resource
│ └── ResourceManager.py: update module information & manage module resource
├── TaskAction
│ └── TaskGenerator_Class.py: abstract experimental task considering job script information
│ └── TaskScheduler_Class.py: control task for each modules depending on scheduling modes
│ └── ActionTranslator_Class.py: digitalize abstracted task for each modules
│ └── ActionExecutor.py: data encoding & decoding, transfer & receive action data
├── USER
├── UserManager
│ └── user.db: store user information (ex. username, password)
│ └── UserManager_Class.py: manage user information
├── client.py: activate client object
└── master_node.py: activate master node after modules activation
- If you activate all modules, then exectue below command.
python master_node.py
- activate client.py
python Client.py
- input username, password in prompt.
Our study highlights both capabilities of the operation control system with user-optimal schedulers to manage various experiments without human intervention and to obtain outstanding operational efficiency for Manual or autonomous experimentations.
- H. J. Yoo, N. Kim, H. Lee, D. Kim, L. T. C. Ow, H. Nam, C. Kim, S. Y. Lee, K.-Y. Lee, D. Kim, S. S. Han, Bespoke Metal Nanoparticle Synthesis at Room Temperature and Discovery of Chemical Knowledge on Nanoparticle Growth via Autonomous Experimentations. Adv. Funct. Mater. 2024, 2312561. https://doi.org/10.1002/adfm.202312561