SCAI now offers training and consulting services for all kinds of high- performance computing on clusters and networks, as well as supercomputers. With world-class computer scientists, as well as experts in specific areas such as bioinformatics and computational chemistry, the company brings a broad
base of expertise to the task of parallelizing diverse applications.
MAINTENANCE AND SUPPORT SERVICES INCLUDE:
- Installation and configuration services.
- Assistance, training, and application development.
- Consulting services and software to parallelize applications for maximum performance.
Maximize application performance by running on clusters, blades, SMPs
or even parallel supercomputers.
Take advantage of multi-processor hardware.
We enhance your applications code and the underlying algorithms. Our work is customized to each client's needs.
Custom Parallel Applications Development:
We can design and build applications to meet your needs.
We solve existing problems and can provide first-line support. We also offer supplementary support and assistance to existing support staff.
We create customized classes to meet clients' needs in areas such as system management, programming, high-performance computing, and others.
System Performance Optimization:
We identify and resolve code configuration bottlenecks, ranging from kernel or system configuration to site architecture flaws and database structure. We tune systems and provide meaningful performance metrics.
Ports to new platforms, like clusters or multiprocessor supercomputers.
Tasks that are cluster-related such as configuration, installation, management, monitoring, and load balancing.
THE PARALLIZATION PROCESS
Our approach is pragmatic. We have successfully parallelized, major applications in chemistry, life sciences, financial services, engineering and more.
Our initial objective is to have a reasonable parallel version of our clients' application code running as quickly as possible. These code are subsequently tuned for very high performance.
Benchmark and profile small examples with your code.
Evaluate parallelization benefits for large problems.
Evaluate parallelization effort and report.
Parallelize primary algorithms with basic tuning.
Parallelize key diagnostics and graphics.
Evaluate performance scaling laws.
Deliver usable parallel code, V1.0.
Parallelize all code options.
Parallelize remaining algorithms.
Tune for specific platforms.
Run competitive benchmarks.
Deliver complete parallel code, V2.0.