Unleash the power of parallelism
with Automatic PARALLEL COMPUTING

All-in-one framework:
  • High Performance Web Server
  • In-Memory Object-Oriented Database
  • Automatic Transactional Memory ...
  • Automatic Memory Management
Requirements:
  • Language: C++
  • OS: Windows

Automatic Parallel Computing (APC) is a comprehensive runtime for parallel computing. It is intended for servers aiming for low-latency, high-throughput, and transactional consistency as well as for High Performance Computing. APC is found on Automatic Transactional Memory with the object of defining a method of automatically parallel programs. APC is a novel computational model that facilitates utilizing the increasing number of core/processors. As a whole, APC brings performance, productivity, and portability.

Performance:

Given the increasing number of the processing elements, high-performance implies highly parallel computing which is composed of tasks executed in parallel. Automatic Parallel Computing not only provides a task scheduler that hides all low-level details of efficient threading but also, using an innovative memory query API, automatically detects intersections of task's side-effects and tasks are executed lock-free and without thread context switches.

Productivity:

Productivity comes with reducing the complexity of programming. However, highly parallel computing on multiple processing elements does not make it simpler. Automatic Transactional Memory introduces query-oriented programming for writing highly parallel programs with intrinsic parallelism. Query-oriented programming not only increases programming productivity but also reduces costs of program maintenance and enhancements.

Portability:

Software and hardware evolve on different life-cycles. Hardware engineers continue innovating to make hardware smaller, faster and more energy efficient. Business applications, on the other hand, align with their businesses. Software portability increases business value of a program as long-term investment. APC decouples application logic of a program from system logic for an underlying computing platform; thus, the two can vary independently.