XCOMPUTE
Xplicit Computing's Objective Massively-Parallel Unified Technical Environment
XCOMPUTEâ„¢ is the only-of-its-kind peer-to-peer scientific computing platform enabling developers and users to build complex things using system and algorithm building blocks. The XC platform facilitates collaborative digital environments by leveraging advanced software with CPU, GPU, and network technologies.
XCOMPUTE aims to be infrastructure for an integrated engineering environment and digital twin platform, acting as a hypervisor and information Rosetta Stone across teams' digital projects, encouraging the integration of files and code into a single source-of-truth (facilitating integration with other software across the team). Users progressively resolve concepts via systems and subsystems, collaboratively assigning relevant attributes, performing simulations, and optimizing objectives. These systems and algorithms can be copied and/or reused as desired.
Declarative Systems (nouns) and Procedural Algorithms (verbs)
Systems often define some concept, component, or assembly; with behavior governed via associated algorithms. Systems are stored as folders containing your project files, and further sub-systems (hence "systems-of-systems").
Algorithms are operators that perform a useful work unit, including other algorithms as needed. Algorithms operate on bound objects such as systems, geometries, and/or data in callable instructions and sequences.
The thesis: such orthogonal characteristic building blocks are extensible to almost any engineering workflows; our strategy is to initially deliver CAE/PLM essentials: systems definition and requirement capture, spatial processing (such as mesh generation), performant data concurrency, intra- and inter-system coupling, global optimization, multi-physics, and digital automation. Progressively-sophisticated modules and capabilities will be released on a development schedule.
Your input is welcome as we work to deliver more functionalities, starting with structural and thermal FEM, followed by compressible FVM, incompressible LBM, and electromagnetism. The expectation is that there will be compounding capability due to high level-of-integration.
Unified CAE Architecture
XC applications and libraries are written in contemporary C++, utilizing four software abstraction layers: Messages schema, Common protocol and the Server and Client applications. A fourth SIMD runtime layer is dynamically compiled and deployed from Server and Client apps using OpenCL / OpenGL. Where possible, XC machinery is procedural (permitting dynamic computation with minimal underlying memory/complexity) and polymorphic (enabling functional specialization of types).
Server-Client Platform
The simulation state machine is hosted on one or more Servers identified by cryptographic certificates. Host machines are typically GPU-accelerated workstations managed by your team or 3rd-party SaaS provider. Teammates access and manipulate the server state through one or more interactive Client apps on GPU-accelerated laptops and desktops using the built-in xcompute protocol.
Common Submodules
Common underlying socket transport protocols (on IANA-registered port 11235) facilitate "get", "set", and "do" functions between computing sessions, moving commands and payloads across computing sessions.
To access project setup and data, XC objects are serialized and deserialized using our free and open Messages library, based on Google's popular Protocol Buffer compiler, acting as a Rosetta Stone across programming languages. This offers many methods to directly integrate XC files. The Messages repository contains a C++ and Python example "hello_vector" to demonstrate save & load upon vectorized binary data.
For additional software platform design information, please see the XCOMPUTE whitepaper.