This project consists of a GPU processing core that provides a set of connected client applications in scientific domains. The architecture allows users to access powerful GPU computations through relatively inexpensive hardware. Key features include a scalable design to add new products and a control panel for each user to view accounts and operations. The goal is to make advanced modeling and simulation accessible to scientists at reasonable cost.
2. GPUDigitalLab
Aim of The Project:
To provide access to parallel
computations for scientists and lab
workers at a reasonable cost.
3. GPUDigitalLab
Solution
We, the members of the Axioma Software team, would like to purpose a cluster solution
for parallel computations on the GPU. This product will consist of a GPU oriented server
that will contain NVIDIA Tesla Graphics Processor at its core. The software would be built
upon Microsoft DirectCompute engine. It will be built as a set of client applications that
use the power of the GPU core for the computtations. Each application would be oriented
to either a problem or a set of problems in modern science and computer graphics. User
starts by logging into the server and download the relevant client application. After that
the user fills in an input form and sends the data to the server through a secured
channel. This architecture allows users to use the power of modern gpu despite the fact
they have relatively cheap hardware.
仂亳, 亞仂. 从舒亠亳仆弍亞, 仍. 亳舒, 32
4. This project consists of a gpu processing core engine that has a set of
connected client applications working in allocated domains
This project has a scalable architecture that makes it easy to install
new products.
The aim of the project is to provide the scientific community with a
powerful computational platform at a reasonable price.
The website of the project includes a dedicated control panel for each
user where he can see the current account balance as well as the list of
the latest operations.
Project Overview
GPUDigitalLab
5. SOFTWARE ARCHITECTURE
仂亳, 亞仂. 从舒亠亳仆弍亞, 仍. 亳舒, 32
3D Graphics
Core Engine
DirectCompute
Core Engine
Video
Rendering
Engine
Direct2D
Graphics
Engine
Core Engine
Fluid Mechanics
Rendering
Engine
Data
Visualization
engine
FPS Scene
Rendering
Engine
Render Farm
Engine
3-rd Person
Simulations
Engine
Mathematical
Modelling
Engine
GPUDigitalLab
6. SOFTWARE CONCEPT
At the core of the system there is module that can execute compute shader
programs and analyze results
There are 3 types of data that we frequently need for our purposes
Structured Buffers(used to store numerical data)
Shader Resources(used to store texture data
Unordered Access View(used to send the collected data to the computational
pipeline
Compute Shader(a module that collects the data stored in buffers and performs
computations based upon a certain algorithm
7. PROGRAM STARTUP
On startup the program open a login dialog
Login
Password
8. PROGRAM RUNTIME
After Logging in the system creates a user session and sets it a unique id.
Using the locking mechanism of compute shaders we create a set of
writable buffers, shader resources and UAVs(unordered access views).
The next step is to prepare our system utilities. Every single utility has a set of
modules to control its correct operation.
Every single utility of the system requires:
Application Manager (launches the utility)
Application Executor (controls the operation of the utility)
Event Processor (collects errors and records them to .log files)
9. PROGRAM STARTUP
Initialize the application
Initialize the graphics engine
Initialize compute shader management class
Initialize the system kernel
Create the user session controller
Create the application domain manger
Initialize the application executing modules
Create instances of the system utilities as child processes
Open a login window
10. DIRECT3D INITIALIZATION
Create the Rendering
Device
Create a Render target
Create a back buffer
Create a depth stencil
Create a viewport
11. DIRECTCOMPUTE EXECUTION
PROCESS
Compile Shader into Byte Code
Read the input data for the
computation
Create Compute Shader Instance
Create constant buffers
Create Shader Resources
Create Unordered Access Views
Create Debug Buffer
Set the compute shader and its
buffers and execute the shader on a
set of gpu threads
12. APPLICATION DOMAIN HAS
An initialized 3D Rendering Loop
An initialized DirectCompute processing loop
A set of buffers for data storage
A set of shader resources for texturing
A set of compute shader instances
An allocated DirectCompute manager class for operations such as data
creation
An allocated Data archiving module for compressing and decompressing
data.
13. APPLICATION DOMAIN MANAGER
Creates and destroys Domains
Collects the data from event processors
Keeps the diary of the operations.
Controls the threads that are used by the domain
14. APPLICATION DOMAIN INSTANCE
Holds the objects that are necessary for computations
Has a collection of program objects such as buffers, resources and views.
Provides a mechanism to edit the data stored in buffers.
Provides a secure access to the data for client apps
15. APPLICATION DOMAIN INSTANCE
An allocated memory pool for application execution
Contains a set of predefined objects, buffers and resources.
Allows to transfer data securely between different processes.
Allows to load program utilities into its threads and control the operation
16. USER SESSION CONTROLLER
Provides the user with a secure access to system resources
Creates a session with a unique session id and stored its in a data archive
Starts a thread that processes the actions of the user and sends the results to
the system modules
17. APPLICATION MANAGER
Has an id of a running software process
Controls the data that is produces by the process
Responsible for starting and terminating systemic widgets
Responsible for transferring the data between widget.
18. APPLICATION EVENT PROCESSOR
Controls the event produced by the application through a named pipe and
an allocated reading thread
Used the received data to determine the state of the executed
applications.
Sends the received info about an application to application state manager
19. APPLICATION STATE MANGER
Responsible for collecting the data from application processors about the
state of a module
Responsible for informing the other participating modules about a state
change for a given module.
Responsible for sending the data about the application errors to the main
processing loop.
20. PROGRAM TYPICAL EXECUTION
THREAD
Login
User logs
into the
system
Session
User is
allocated
a session
Domains
System
creates a
set of
domains
Applications
Applications
are loaded
into domains
Application
Selection
User selects
an
application
from the
panel
Data
User enters
the input
parameters
into the
fields of the
dialog and
selects the
output
format
Computatio
n
Data is sent
to a
computation
al engine
through a
secured
channel and
processed
using a set of
predefined
algorithms
Output
User is
presented
with an
output that
can be
saved to a
file
21. CLUSTER PRODUCTS OF GPUDIGITALLAB
GPUDigitalLa
b Core
Engine
Industrial
Simulations
Engine
Fluid Mechanics
Engine
Video Encoding and
Analysis Engine
Physics and Chemistry
processes Simulation
Engine
Crowd
visualization
Engine
Image
Processing
Engine
Render-
Farm
Engine
Data-
visualization
Engine
仂亳, 亞仂. 从舒亠亳仆弍亞, 仍. 亳舒, 32
GPUDigitalLab
22. 7 STEPS TO USE GPUDIGITALLAB
仂亳, 亞仂. 从舒亠亳仆弍亞, 仍. 亳舒, 32
Go to
www.omenart.ru/
gpu
Log into the
system or
register an
account
Select the
necessary
software module
from the control
panel
Input the
relevant
parameters
Calculate or
simulate a
temporary result
Pay for the
transaction
Output and save
the final result to
a file
GPUDigitalLab
29. UPCOMING PRODUCTS
仂亳, 亞仂. 从舒亠亳仆弍亞, 仍. 亳舒, 32
GPUDMOLSimulationEngine software products
for molecular configurations computation and
dispertion of the electron density.
GPUSmartCrowdEngine software to
visualize and classify crowds of people for
statistical analysis
GPUConstructionDemolitionEngine
building destruction simulation engine.
GPUFireExtinguishingPlanner training
tool for a fire brigade or the workers of a
factory
30. UPCOMING PRODUCTS
GPUCrudeOilFlowSimulationEngine oil
pipe traffic simulation engine
GPUFlueAndColdSimulationEngine cold
and flue dispersion simulator.
GPUCavitiesSimulationEngine dental
diseases simulation engine.
GPUChemicalReactionsSimulator a
learning game where students have to
construct a chemical reaction equation using
an interactive periodic table.
GPUBloodSimulationEngine blood
circulation engine.
GPUMedicalDrugSimulation software to
simulate an effect of a chemical substance on
a human body
31. Essential Hardware
Server
Model: GPX XT10-2260-6GPU
CPU: 2 x Six-Core Intel速 Xeon速 Processor E5-2630 v2 2.60GHz 15MB Cache (80W)
RAM: 8 x 4GB PC3-14900 1866MHz DDR3 ECC Registered DIMM
HDD: 250GB SATA 6.0Gb/s 7200RPM - 2.5" - Seagate Constellation.2
4 x 800GB Micron M500DC 2.5" SATA 6.0Gb/s Solid State Drive
2 x 1.6TB Intel速 DC S3500 Series 2.5" SATA 6.0Gb/s Solid State Drive
2 x 800GB Intel速 DC S3700 Series 2.5" SATA 6.0Gb/s Solid State Drive
GPU: NVIDIA速 Tesla K40M GPU Computing Accelerator - 12GB GDDR5 - 2880
CUDA Cores
Network Card: Intel速 10-Gigabit Ethernet Converged Network Adapter X540-T1
(1x RJ-45)
UPS: APC Smart-UPS 1000VA LCD 120V - 2U Rackmount
Operating System: Microsoft Windows Server 2012
仂亳, 亞仂. 从舒亠亳仆弍亞, 仍. 亳舒, 32
舒弍仂舒仂亳 仗舒舒仍仍亠仍仆 于亳仍亠仆亳亶 仆舒 GPU
32. Essential Hardware
Designers PC 5
CPU Core i7-4790 (3.6GHz)
RAM 32 GB
HDD 3 TB
GPU NVIDIA GeForce GTX 760 (2GB)
Keyboard Genius GK 110001
Mouse Gigabyte GM-M6800
Operating System Windows 8.1
Programmers PC 2
CPU Core i7-4790 (3.6GHz)
RAM 16 GB
HDD 2 TB
GPU NVIDIA GeForce GTX 760 (2GB)
Keyboard Genius GK 110001
Mouse Gigabyte GM-M6800
Operating System Windows 8.1
34. POTENTIAL CUSTOMERS
Oil and Gas industries
Medical institutions
Educational and Research institutions
Construction Companies
Administration of Yekaterinburg
Public event organizers
Information technology companies.