Monday, 29 May 2017

Linear Algebra on Windows with LAPACK

The LAPACK library is a linear algebra library that succeeds an earlier package called LINPACK. It can be built on Windows using the cross-platform, open source build system, Cmake. It utilises block matrix techniques for efficiency.

Full documentation of LAPACK can be found here.

Parallel Algorithms in C++17

C++17 will introduce parallel algorithms as motivated by Jared Hoberock's thought piece on standardisation of the Parallelism TS (Technical Specification). Jared is the co-creator of Thrust  and is interested in parallel programming models and physically based rendering. His github site is dubbed "Parallel Experiments".

Cool things in C++17

C++17 reached Draft status in March 2017.  Cool features include:
  • nested namespaces (namespace X::Y {}, instead of namespace X { namespace y {}})
  • initializer in if statement (i.e. instead of if (condition), then if ( init; condition)
  • guaranteed copy elision by compilers in some cases
Notes - copy elision refers to a compiler optimization technique that removes unnecessary copying of objects.

Session 0

Every user in Windows is place in a separate session. Session 0 is created on startup and additional sessions are created as needed. Processes (generally services) running in Session 0 have no access to the graphics hardware. User applications must run in Session 1 or higher.