Concurrency Kit provides a plethora of concurrency primitives and lock-less and lock-free data structures designed to aid in the design and implementation of high performance scalable concurrent systems. It was designed to minimize dependencies on operating system-specific interfaces, and most of the interface relies only on a strict subset of the standard library and more popular compiler extensions.
Charm++ is a portable adaptive runtime system for parallel applications. Application developers create an object-based decomposition of the problem of interest, and the runtime system manages issues of communication, mapping, load balancing, fault tolerance, and more. Sequential code implementing the methods of these parallel objects is written in C++. Calls to libraries in C++, C, and Fortran are common and straightforward. Charm++ is portable across individual workstations, clusters, accelerators (Cell SPEs and GPUs), and supercomputers such as those sold by IBM (Blue Gene, POWER) and Cray (XT3/4/5/6). Applications based on Charm++ are used on at least 5 of the 20 most powerful computers in the world.
The Tinyserial library is a space-saving alternative to the Arduino software distribution's libraries for reading and writing characters and strings to the USART0 serial port on the Atmel ATmega168 and ATmega328p MCUs found on Arduino Diecimilla and Duemilanove boards. While the Arduino software distribution's libraries provide interrupt-driven serial I/O with far more features and support more MCUs, the Tinyserial library provides only the most basic polling-based serial I/O. However, the Tinyserial library uses far less Flash and SRAM, thereby giving you room to implement larger and more complicated applications on your boards. The Tinyserial library respects the GNU libc ABI, so you can call into it from C and C++ programs.
The Objeck computer language is an object-oriented computing language with functional features that has ties with Java, C#, and Pascal. In this language, all data types are treated as objects. The language consists of a compiler and VM with an accompanying memory management and JIT compiler.
libjpeg-turbo is a high-speed version of libjpeg for x86 and x86-64 processors. It uses SIMD instructions (MMX, SSE, SSE2) to accelerate baseline JPEG compression and decompression. libjpeg-turbo is generally 2-4 times as fast as the unmodified version of libjpeg. It also includes a wrapper library for the TurboJPEG API used by VirtualGL and TurboVNC. It was originally based on libjpeg/SIMD but has improved support for Mac OS X, 64-bit platforms, 32-bit and big endian pixel formats (RGBA/BGRA/ABGR/ARGB), accelerated Huffman encoding/decoding, and various other fixes.
FastFlow is a pattern-based programming framework targeting streaming applications. It implements pipeline, farm, divide and conquer, and their composition, as well as generic streaming networks. It is specifically designed to support the development and the seamless porting of existing applications on multi-core. The layered template-based C++ design ensures flexibility and extendibility. Its lock-free/fence-free run-time support minimizes cache invalidation traffic and enforces the development of high-performance (high-throughput, low-latency) scalable applications. It has been proven faster than TBB, OpenMP, and Cilk on several micro-benchmarcks and real-world applications, especially when dealing with fine-grained parallelism and high-throughput applications.
libposix is an impementation of the core functionality of all Unix systems. It is a full, cross-platform implementation of the POSIX 2008 standard. It is meant to replace existing implementations of a Unix system's core libraries. It is an exact implementation of POSIX 2008 and nothing else (no extensions, no previous POSIX versions). However, it works well with possible extensions to the core system functionallity (for example, GNU or BSD).
libCVD is a very portable and high performance C++ library for computer vision, image, and video processing. The emphasis is on providing simple and efficient image and video handling and high quality implementations of common low-level image processing function. The library is designed in a loosely-coupled manner, so that parts can be used easily in isolation if the whole library is not required. The video grabbing module provides a simple, uniform interface for videos from a variety of sources (live and recorded) and allows easy access to the raw pixel data. Likewise, the image loading/saving module provides simple, uniform interfaces for loading and saving images from bitmaps to 64 bit per channel RGBA images. The image processing routines can be applied easily to images and video, and accelerated versions exist for platforms supporting SSE.