Parallel Colt 0.7.2

edu.emory.mathcs.utils
Class ConcurrencyUtils

java.lang.Object
  extended by edu.emory.mathcs.utils.ConcurrencyUtils

public class ConcurrencyUtils
extends Object

Concurrency utilities.

Author:
Piotr Wendykier (piotr.wendykier@gmail.com)

Constructor Summary
ConcurrencyUtils()
           
 
Method Summary
static boolean checkJCublas()
          Checks if JCublas is available
static int extendDimension(int x)
           
static int getNumberOfProcessors()
          Returns the number of available processors
static int getNumberOfThreads()
          Returns the current number of threads.
static int getThreadsBeginN_1D_FFT_2Threads()
          Returns the minimal size of 1D data for which two threads are used.
static int getThreadsBeginN_1D_FFT_4Threads()
          Returns the minimal size of 1D data for which four threads are used.
static int getThreadsBeginN_1D()
          Returns the minimal size of 1D data for which threads are used.
static int getThreadsBeginN_2D()
          Returns the minimal size of 2D data for which threads are used.
static int getThreadsBeginN_3D()
          Returns the minimal size of 3D data for which threads are used.
static boolean getUseJCublas()
          Returns true if JCUBLAS is used.
static boolean isPowerOf2(int n)
          Checks if n is a power-of-two number
static int nextExp2(int n)
           
static int nextPow2(int x)
          Returns the closest power of two greater than or equal to x.
static int prevPow2(int x)
          Returns the closest power of two less than or equal to x
static void resetThreadsBeginN_FFT()
          Resets the minimal size of 1D data for which two and four threads are used.
static void resetThreadsBeginN()
          Resets the minimal size of 1D, 2D and 3D data for which threads are used.
static void setNumberOfThreads(int n)
          Sets the number of threads
static void setThreadsBeginN_1D_FFT_2Threads(int n)
          Sets the minimal size of 1D data for which two threads are used.
static void setThreadsBeginN_1D_FFT_4Threads(int n)
          Sets the minimal size of 1D data for which four threads are used.
static void setThreadsBeginN_1D(int n)
          Sets the minimal size of 1D data for which threads are used.
static void setThreadsBeginN_2D(int n)
          Sets the minimal size of 2D data for which threads are used.
static void setThreadsBeginN_3D(int n)
          Sets the minimal size of 3D data for which threads are used.
static void setUseJCublas(boolean useJCublas)
          If useJCublas is true then JCUBLAS is used.
static void sleep(long millis)
          Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds.
static
<T> Future<T>
submit(Callable<T> task)
          Submits a value-returning task for execution and returns a Future representing the pending results of the task.
static Future<?> submit(Runnable task)
          Submits a Runnable task for execution and returns a Future representing that task.
static void waitForCompletion(Future<?>[] futures)
          Waits for all threads to complete computation.
static double[] waitForCompletion(Future<?>[] futures, DComplexDComplexDComplexFunction aggr)
          Waits for all threads to complete computation and aggregates the result.
static double waitForCompletion(Future<?>[] futures, DoubleDoubleFunction aggr)
          Waits for all threads to complete computation and aggregates the result.
static float[] waitForCompletion(Future<?>[] futures, FComplexFComplexFComplexFunction aggr)
          Waits for all threads to complete computation and aggregates the result.
static float waitForCompletion(Future<?>[] futures, FloatFloatFunction aggr)
          Waits for all threads to complete computation and aggregates the result.
static int waitForCompletion(Future<?>[] futures, IntIntFunction aggr)
          Waits for all threads to complete computation and aggregates the result.
static Object waitForCompletion(Future<?>[] futures, ObjectObjectFunction aggr)
          Waits for all threads to complete computation and aggregates the result.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConcurrencyUtils

public ConcurrencyUtils()
Method Detail

sleep

public static void sleep(long millis)
Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds.

Parameters:
millis -

submit

public static <T> Future<T> submit(Callable<T> task)
Submits a value-returning task for execution and returns a Future representing the pending results of the task.

Type Parameters:
T -
Parameters:
task - task for execution
Returns:
a handle to the task submitted for execution

submit

public static Future<?> submit(Runnable task)
Submits a Runnable task for execution and returns a Future representing that task.

Parameters:
task - task for execution
Returns:
a handle to the task submitted for execution

getNumberOfProcessors

public static int getNumberOfProcessors()
Returns the number of available processors

Returns:
number of available processors

checkJCublas

public static boolean checkJCublas()
Checks if JCublas is available

Returns:
true if JCublas is available

getNumberOfThreads

public static int getNumberOfThreads()
Returns the current number of threads.

Returns:
the current number of threads.

waitForCompletion

public static void waitForCompletion(Future<?>[] futures)
Waits for all threads to complete computation.

Parameters:
futures - handles to running threads

waitForCompletion

public static double waitForCompletion(Future<?>[] futures,
                                       DoubleDoubleFunction aggr)
Waits for all threads to complete computation and aggregates the result.

Parameters:
futures - handles to running threads
aggr - an aggregation function
Returns:
the result of aggregation

waitForCompletion

public static int waitForCompletion(Future<?>[] futures,
                                    IntIntFunction aggr)
Waits for all threads to complete computation and aggregates the result.

Parameters:
futures - handles to running threads
aggr - an aggregation function
Returns:
the result of aggregation

waitForCompletion

public static Object waitForCompletion(Future<?>[] futures,
                                       ObjectObjectFunction aggr)
Waits for all threads to complete computation and aggregates the result.

Parameters:
futures - handles to running threads
aggr - an aggregation function
Returns:
the result of aggregation

waitForCompletion

public static double[] waitForCompletion(Future<?>[] futures,
                                         DComplexDComplexDComplexFunction aggr)
Waits for all threads to complete computation and aggregates the result.

Parameters:
futures - handles to running threads
aggr - an aggregation function
Returns:
the result of aggregation

waitForCompletion

public static float[] waitForCompletion(Future<?>[] futures,
                                        FComplexFComplexFComplexFunction aggr)
Waits for all threads to complete computation and aggregates the result.

Parameters:
futures - handles to running threads
aggr - an aggregation function
Returns:
the result of aggregation

waitForCompletion

public static float waitForCompletion(Future<?>[] futures,
                                      FloatFloatFunction aggr)
Waits for all threads to complete computation and aggregates the result.

Parameters:
futures - handles to running threads
aggr - an aggregation function
Returns:
the result of aggregation

getUseJCublas

public static boolean getUseJCublas()
Returns true if JCUBLAS is used.

Returns:
true if JCUBLAS is used

setUseJCublas

public static void setUseJCublas(boolean useJCublas)
If useJCublas is true then JCUBLAS is used.

Parameters:
useJCublas -

getThreadsBeginN_1D

public static int getThreadsBeginN_1D()
Returns the minimal size of 1D data for which threads are used.

Returns:
the minimal size of 1D data for which threads are used

getThreadsBeginN_1D_FFT_2Threads

public static int getThreadsBeginN_1D_FFT_2Threads()
Returns the minimal size of 1D data for which two threads are used.

Returns:
the minimal size of 1D data for which two threads are used

getThreadsBeginN_1D_FFT_4Threads

public static int getThreadsBeginN_1D_FFT_4Threads()
Returns the minimal size of 1D data for which four threads are used.

Returns:
the minimal size of 1D data for which four threads are used

getThreadsBeginN_2D

public static int getThreadsBeginN_2D()
Returns the minimal size of 2D data for which threads are used.

Returns:
the minimal size of 2D data for which threads are used

getThreadsBeginN_3D

public static int getThreadsBeginN_3D()
Returns the minimal size of 3D data for which threads are used.

Returns:
the minimal size of 3D data for which threads are used

setThreadsBeginN_1D_FFT_2Threads

public static void setThreadsBeginN_1D_FFT_2Threads(int n)
Sets the minimal size of 1D data for which two threads are used.

Parameters:
n - the minimal size of 1D data for which two threads are used

setThreadsBeginN_1D_FFT_4Threads

public static void setThreadsBeginN_1D_FFT_4Threads(int n)
Sets the minimal size of 1D data for which four threads are used.

Parameters:
n - the minimal size of 1D data for which four threads are used

setThreadsBeginN_1D

public static void setThreadsBeginN_1D(int n)
Sets the minimal size of 1D data for which threads are used.

Parameters:
n - the minimal size of 1D data for which threads are used

setThreadsBeginN_2D

public static void setThreadsBeginN_2D(int n)
Sets the minimal size of 2D data for which threads are used.

Parameters:
n - the minimal size of 2D data for which threads are used

setThreadsBeginN_3D

public static void setThreadsBeginN_3D(int n)
Sets the minimal size of 3D data for which threads are used.

Parameters:
n - the minimal size of 3D data for which threads are used

resetThreadsBeginN_FFT

public static void resetThreadsBeginN_FFT()
Resets the minimal size of 1D data for which two and four threads are used.


resetThreadsBeginN

public static void resetThreadsBeginN()
Resets the minimal size of 1D, 2D and 3D data for which threads are used.


setNumberOfThreads

public static void setNumberOfThreads(int n)
Sets the number of threads

Parameters:
n -

nextPow2

public static int nextPow2(int x)
Returns the closest power of two greater than or equal to x.

Parameters:
x -
Returns:
the closest power of two greater than or equal to x

extendDimension

public static int extendDimension(int x)

nextExp2

public static int nextExp2(int n)

prevPow2

public static int prevPow2(int x)
Returns the closest power of two less than or equal to x

Parameters:
x -
Returns:
the closest power of two less then or equal to x

isPowerOf2

public static boolean isPowerOf2(int n)
Checks if n is a power-of-two number

Parameters:
n -
Returns:
true if n is power of 2

Parallel Colt 0.7.2

Jump to the Parallel Colt Homepage