FastFlow  SVN-r182-Aug-14-2014
A high-level, lock-less, parallel programming (shared-memory) and distributed programming (distributed-memory) framework for multi-cores and many-cores systems
 All Classes Namespaces Files Functions Variables Typedefs Groups Pages
Classes | Functions | Variables
ff Namespace Reference

The principal namespace for the FastFlow library. More...

Classes

class  Barrier
 Blocking barrier - Used only to start all nodes synchronously. More...
 
class  ff_allocator
 The ff_allocator, based on the idea of the Slab allocator More...
 
class  ff_dinout
 A ff::ff_dnode serving both Input and Output to the network. More...
 
class  ff_dnode
 Defines ff::ff_dnode. More...
 
class  ff_farm
 The Farm skeleton, with Emitter (lb_t) and Collector (gt_t). More...
 
class  ff_gatherer
 A class representing the Collector node in a Farm skeleton. More...
 
class  ff_loadbalancer
 A class representing the Emitter node in a typical Farm skeleton. More...
 
class  ff_mdf
 Macro Data Flow executor. More...
 
class  ff_minode
 Multiple input ff_node (the MPSC mediator) More...
 
class  ff_monode
 Multiple output ff_node (the SPMC mediator) More...
 
class  ff_node
 The FastFlow abstract contanier for a parallel activity (actor). More...
 
class  ff_oclNode
 OpenCL implementation of FastFlow node. More...
 
class  ff_ofarm
 The ordered Farm skeleton. More...
 
class  ff_pipe
 Pipeline pattern (high-level pattern syntax) More...
 
class  ff_pipeline
 The Pipeline skeleton (low-level syntax) More...
 
class  ff_thread
 thread container for (leaves) ff_node More...
 
class  FFAllocator
 A user-space parallel allocator (process-wide) More...
 
class  Lamport_Buffer
 Implementation of the well-known Lamport's wait-free circular buffer. Not currently used. More...
 
class  MPMC_Ptr_Queue
 An implementation of the bounded Multi-Producer/Multi-Consumer queue. Not currently used. More...
 
class  MSqueue
 Michael and Scott MPMC. Not currently used. More...
 
class  ofarm_gt
 Ordered farm Collector. More...
 
class  ofarm_lb
 Ordered farm emitter. More...
 
class  ParallelFor
 Parallel for loop. Run automatically. More...
 
class  ParallelForPipeReduce
 ParallelForPipeReduce class. More...
 
class  ParallelForReduce
 Parallel for and reduce. Run automatically. More...
 
class  poolEvolution
 The pool evolution parallel pattern. More...
 
class  spinBarrier
 Nonblocking barrier - Used only to start all nodes synchronously. More...
 
class  squeue
 Unbound sequential FIFO queue. More...
 
class  svector
 Simple yet efficient dynamic vector. More...
 
class  SWSR_Ptr_Buffer
 SPSC bound channel (Single-Writer/Single-Reader) More...
 
class  threadMapper
 The thread mapper allows to map threads to specific core using a predefined mapping policy. More...
 
class  uSWSR_Ptr_Buffer
 Unbounded Single-Writer/Single-Reader buffer (FastFlow unbound channel) More...
 

Functions

static unsigned int address_hash_function (void *address)
 
template<typename Function >
static void parallel_for (long first, long last, const Function &body, const long nw=FF_AUTO)
 Parallel loop over a range of indexes (step=1)
 
template<typename Function >
static void parallel_for (long first, long last, long step, const Function &body, const long nw=FF_AUTO)
 Parallel loop over a range of indexes using a given step.
 
template<typename Function >
static void parallel_for (long first, long last, long step, long grain, const Function &body, const long nw=FF_AUTO)
 Parallel loop over a range of indexes using a given step and granularity.
 

Variables

static const size_t FF_EOS_NOFREEZE = (FF_EOS-0x1)
 automatically propagated
 
static const size_t FF_GO_ON = (FF_EOS-0x2)
 non automatically propagated
 
static const size_t FF_GO_OUT = (FF_EOS-0x3)
 non automatically propagated
 

Detailed Description

The principal namespace for the FastFlow library.

All classes and functions in the FastFlow library are contained within this namespace.

Function Documentation

static unsigned int ff::address_hash_function ( void *  address)
inlinestatic

Hash function to map addresses, cut into "long" size chunks, then XOR. The result will be matched to hash table size using mod in the hash table implementation