What is QCArchive and its architecture
mainQCArchive is a platform designed for running, storing, and managing large-scale quantum chemistry calculations (thousands to millions of computations). It is built to handle the complexities of different QM codes, distributed resources, and error handling at scale.
The architecture consists of three main components:
- QCFractal (Server): The central component responsible for storing and managing data. It exposes a JSON-based web API, allowing access via any language capable of making web requests.
- QCPortal (Client): A Python-native client used to submit and manage calculations. This is the primary way for users to interact with the server.
- QCFractalCompute (Workers): The component responsible for actually executing the calculations. These are typically set up on a supercomputing cluster.
Typical Deployment Pattern:
- Server: Run on a dedicated machine.
- Client: Run on the user's local machine.
- Workers: Set up on a supercomputing cluster, often with a process on the head node to coordinate job submission and monitoring.