Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
wiki:programming_libraries [2012/04/28 00:48] – [Thread management and CPU-affinity in linux] emrumwiki:programming_libraries [2017/01/30 03:57] – [Libraries for Atomic Operations] flatmax
Line 33: Line 33:
  **RtMidi** - [[http://www.music.mcgill.ca/~gary/rtmidi/]] - Cpp library for midi IO  **RtMidi** - [[http://www.music.mcgill.ca/~gary/rtmidi/]] - Cpp library for midi IO
  
 + **WebAudio** - [[http://www.w3.org/TR/webaudio/]] - W3C WebAudio API 2012
 \\ \\
  
Line 66: Line 67:
   * [[http://www.boost.org/doc/libs/1_39_0/boost/interprocess/detail/atomic.hpp| Boost Atomic.hpp (c++) ]]   * [[http://www.boost.org/doc/libs/1_39_0/boost/interprocess/detail/atomic.hpp| Boost Atomic.hpp (c++) ]]
   * [[http://threadingbuildingblocks.org/| Intel® Threading Building Blocks (Intel TBB) ]]   * [[http://threadingbuildingblocks.org/| Intel® Threading Building Blocks (Intel TBB) ]]
 +  * [[http://lttng.org/urcu| Userspace RCU library]] - User-level Read-Copy Update, Lock-free data structures (RCU lock-free hash table with auto-resize, queues, stacks), atomic operations, efficient user-level wait/wake-up
   * [[http://www.ioremap.net/node/224| libsync - Atomic operations and userspace RCU ]]   * [[http://www.ioremap.net/node/224| libsync - Atomic operations and userspace RCU ]]
   * [[http://www.pjsip.org/docs/latest/pjlib/docs/html/index.htm| PJLIB ]] - A small footprint framework library written in C for making scalable applications. Includes Atomic Ops.   * [[http://www.pjsip.org/docs/latest/pjlib/docs/html/index.htm| PJLIB ]] - A small footprint framework library written in C for making scalable applications. Includes Atomic Ops.
 +  * [[http://www.flatmax.org/gtkiostream/html/ThreadTest_8C-example.html| gtkIOStream thread]] and [[http://www.flatmax.org/gtkiostream/html/classMutex.html| gtkIOStream mutex ]] - Set of mutex and thread C++ headers to trivialise threading. Can use either pthreads or GLib threads.
 +
 +\\
  
 \\ \\
 ===== Lockfree (non-blocking) Data Structures - Libraries ===== ===== Lockfree (non-blocking) Data Structures - Libraries =====
 \\ \\
 +  * [[http://lttng.org/urcu| Userspace RCU (read-copy-update) ]]
 +  * [[http://lwn.net/Articles/262464/| What is RCU - Article ]]
   * [[http://sourceforge.net/projects/mc-fastflow/| FastFlow - Lockfree FIFO Queues ]]   * [[http://sourceforge.net/projects/mc-fastflow/| FastFlow - Lockfree FIFO Queues ]]
   * [[http://atomic-ptr-plus.sourceforge.net/| Atomic Ptr Plus ]]   * [[http://atomic-ptr-plus.sourceforge.net/| Atomic Ptr Plus ]]
Line 83: Line 90:
   * [[http://tim.klingt.org/code/projects/boost-lockfree| Boost.Lockfree ]] - A boost-like, but NOT boost, library for lockfree structs.   * [[http://tim.klingt.org/code/projects/boost-lockfree| Boost.Lockfree ]] - A boost-like, but NOT boost, library for lockfree structs.
   * [[http://www.noble-library.org/| Noble library ]] - a library of non-blocking synchronization protocols    * [[http://www.noble-library.org/| Noble library ]] - a library of non-blocking synchronization protocols 
 +  * [[http://lttng.org/urcu| Userspace RCU library liburcu-cds]] - Userspace RCU Lock-free data structures (RCU lock-free hash table with auto-resize, queues, stacks)
 +  * [[https://github.com/OpenMusicKontrollers/varchunk| varchunk ]] - rt-safe, lock-free, zero-copy, contiguous-chunk ringbuffer optimized for event handling. 
 +
 \\ \\
  
 ===== Parallel Programming ===== ===== Parallel Programming =====
  
 +\\
 +  * [[http://www.par4all.org/features/| Par4all compiler ]] - Generates OpenCL, CUDA or OpenMP parallel code from (sequenciel) C code.
 \\ \\
   * [[http://openmp.org/wp/about-openmp/| OpenMP (Open Multi-Processing) ]]  - OpenMP is an API (Application Programming Interface) that supports multi-platform shared memory multiprocessing programming.    * [[http://openmp.org/wp/about-openmp/| OpenMP (Open Multi-Processing) ]]  - OpenMP is an API (Application Programming Interface) that supports multi-platform shared memory multiprocessing programming. 
Line 105: Line 117:
   * [[http://www.khronos.org/registry/cl/| OpenCL API ]]   * [[http://www.khronos.org/registry/cl/| OpenCL API ]]
   * [[http://www.macresearch.org/opencl_episode1| OpenCL Tutorial ]]   * [[http://www.macresearch.org/opencl_episode1| OpenCL Tutorial ]]
 +  * [[http://mathema.tician.de/software/pyopencl| PyOpenCL ]] - use OpenCL parallel computation API from Python
 +  * [[http://packages.python.org/pyfft/| PyFFT ]] - fast fourier transform with OpenCL (or Cuda) using Python
 +\\
 \\ \\
   * [[http://upc.gwu.edu/| Unified Parallel C]]  - UPC is an extension of the C programming language designed for high-performance computing.   * [[http://upc.gwu.edu/| Unified Parallel C]]  - UPC is an extension of the C programming language designed for high-performance computing.
Line 180: Line 195:
   * [[http://stackoverflow.com/questions/939778/linux-api-to-list-running-processes| list running processes ]]   * [[http://stackoverflow.com/questions/939778/linux-api-to-list-running-processes| list running processes ]]
   * [[http://kernelnewbies.org/KernelHacking| kernel hacking]]   * [[http://kernelnewbies.org/KernelHacking| kernel hacking]]
 +\\
 +  * [[http://www.open-mpi.org/projects/hwloc/| hwloc - portable multi threading ]]
 \\ \\
 Part of an Answer at [[http://stackoverflow.com/questions/766395/how-does-sched-setaffinity-work| stackoverflow.com]] : Part of an Answer at [[http://stackoverflow.com/questions/766395/how-does-sched-setaffinity-work| stackoverflow.com]] :
Line 235: Line 252:
  **WxWidgets** - [[http://www.wxwidgets.org/]] .  **WxWidgets** - [[http://www.wxwidgets.org/]] .
  
- **Ultimate++** - [[http://ultimatepp.org/www$uppweb$overview$en-us.html]] - Cpp cross-platform Framework+ **Ultimate++** - [[http://ultimatepp.org/www$uppweb$overview$en-us.html]] - Cpp cross-platform Framework .
  
- + **gtkIOStream** - [[http://sourceforge.net/projects/gtkiostream/]] - Inline headers for C++ iostream style GTK GUI building .
-.+
  
 ==== with 3-dimensional capabilities ==== ==== with 3-dimensional capabilities ====
Line 293: Line 309:
  
  **MoSync** - [[http://www.mosync.com/]] - Cpp, for Smartphones etc.  **MoSync** - [[http://www.mosync.com/]] - Cpp, for Smartphones etc.
 +
 + **Kivy** - [[http://kivy.org/]] - Python library for rapid development, innovative ui, multi-touch apps
 +
 + **Tizen** - [[https://www.tizen.org/]] - "Environment for application developers, based on HTML5. "
 +
  
 . .
wiki/programming_libraries.txt · Last modified: 2017/01/30 03:59 by flatmax