Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:programming_libraries [2012/04/28 00:52]
emrum [Thread management and CPU-affinity in linux]
wiki:programming_libraries [2017/01/30 03:59] (current)
flatmax [libraries for audio processing and signal processing (DSP)]
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 44: Line 45:
  
  * [[http://​jamoma.org/​ | Jamoma DSP ]] - interface for C++, with an emphasis on real-time signal processing  * [[http://​jamoma.org/​ | Jamoma DSP ]] - interface for C++, with an emphasis on real-time signal processing
 +
 + * [[http://​www.flatmax.org/​gtkiostream/​html/​JackClientTest_8C-example.html | gtkIOStream jackd client ]] - trivialises using jackd for audio input and output DSP processing.
  
 \\ \\
Line 66: Line 69:
   * [[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 92:
   * [[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 119:
   * [[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 237: Line 254:
  ​**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 295: Line 311:
  
  ​**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.1335567136.txt.gz · Last modified: 2012/04/28 00:52 by emrum