Structures of arrays (SoA) are generally faster than arrays of structures (AoS) while AoS are more handy. This project (SoAx) combines the advantages of both. By means of C++(11) meta-template programming SoAx achieves maximal performance (efficient use of vector units and cache of modern CPUs) while providing a very convenient user interface (including object-oriented element handling) and flexibility. It has been designed to handle list-like sets of particles (similar to struct {int id; double[3] pos; float[3] vel;};) in the context of high-performance numerical simulations. It can be applied to many other problems. Please check the sample file main.cpp to see examples of code that you can write with SoAx.

Features

  • Generic implementation of a Structure of Arrays with C++11
  • Similar handyness as Arrays of Structures but much faster
  • List-like operations such as remove and push_back
  • Template metaprogramming using template inheritance and std::tuple
  • Optimized array operations (+,-,...) using expression templates
  • GPU support
  • Serial/Threaded/MPI - file I/O
  • Tested with g++ 4.8.4, clang++ 3.6, icc 16.0, nvcc 7.0

Project Samples

Project Activity

See All Activity >

Categories

Physics, Libraries

License

Other License

Follow SoAx

SoAx Web Site

Other Useful Business Software
Paessler: Easy to Use With Enterprise Power. Free Trial Icon
Paessler: Easy to Use With Enterprise Power. Free Trial

A low-code dashboard makes monitoring intuitive for any admin, while scripting and custom sensors give experts full control.

You shouldn't have to choose between a monitoring tool that's easy to use and one that's powerful enough for a complex environment. PRTG's low-code interface lets any admin build dashboards, set alerts and monitor devices without scripting, while custom sensors and full API access are there when your team needs deeper control. One platform, no compromise. Download a free 30-day trial now.
Get Free Download
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of SoAx!

Additional Project Details

Operating Systems

Linux

Intended Audience

Developers

Programming Language

C++

Related Categories

C++ Physics Software, C++ Libraries

Registered

2015-08-27