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/25 23:37] – add dsp section 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 41: Line 42:
   * [[http://code.google.com/p/ugen/| UGen++ audio processing API ]] synthesis framework in C++. It provides oscillators, filters, envelopes and event management etc.   * [[http://code.google.com/p/ugen/| UGen++ audio processing API ]] synthesis framework in C++. It provides oscillators, filters, envelopes and event management etc.
  
 +  * [[http://code.google.com/p/pyo/| Python digital signal processing module ]] written in C to help digital signal processing script creation. 
 +
 + * [[http://jamoma.org/ | Jamoma DSP ]] - interface for C++, with an emphasis on real-time signal processing
  
 \\ \\
Line 63: 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 80: 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 102: 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 164: Line 182:
 \\ \\
 Related Articles: Related Articles:
 +  * [[http://www.thinkingparallel.com/2006/08/18/more-information-on-pthread_setaffinity_np-and-sched_setaffinity/| example ]]
   * [[http://www.ibm.com/developerworks/linux/library/l-affinity/index.html| Take charge of processor affinity]]   * [[http://www.ibm.com/developerworks/linux/library/l-affinity/index.html| Take charge of processor affinity]]
   * [[http://www.gnugeneration.com/books/linux/2.6.20/kernel-api/| The Linux-Kernel API (2.6.20) ]]   * [[http://www.gnugeneration.com/books/linux/2.6.20/kernel-api/| The Linux-Kernel API (2.6.20) ]]
Line 176: 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 202: Line 223:
 </code> </code>
  
 +\\
 +\\
 +\\
  
 ===== GUI libraries - create graphical user interfaces ===== ===== GUI libraries - create graphical user interfaces =====
Line 228: 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 286: 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