Package de.gsi.math.utils
Class ConcurrencyUtils
- java.lang.Object
-
- de.gsi.math.utils.ConcurrencyUtils
-
public class ConcurrencyUtils extends java.lang.ObjectConcurrency utilities.- Author:
- Piotr Wendykier (piotr.wendykier@gmail.com)
-
-
Constructor Summary
Constructors Constructor Description ConcurrencyUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static intextendDimension(int x)static intgetNumberOfProcessors()Returns the number of available processorsstatic intgetNumberOfThreads()Returns the current number of threads.static intgetThreadsBeginN_1D()Returns the minimal size of 1D data for which threads are used.static intgetThreadsBeginN_1D_FFT_2Threads()Returns the minimal size of 1D data for which two threads are used.static intgetThreadsBeginN_1D_FFT_4Threads()Returns the minimal size of 1D data for which four threads are used.static intgetThreadsBeginN_2D()Returns the minimal size of 2D data for which threads are used.static intgetThreadsBeginN_3D()Returns the minimal size of 3D data for which threads are used.static booleanisForceThreads()static booleanisPowerOf2(int n)Checks if n is a power-of-two numberstatic intnextExp2(int n)static intnextPow2(int x)Returns the closest power of two greater than or equal to x.static intprevPow2(int x)Returns the closest power of two less than or equal to xstatic voidresetThreadsBeginN()Resets the minimal size of 1D, 2D and 3D data for which threads are used.static voidresetThreadsBeginN_FFT()Resets the minimal size of 1D data for which two and four threads are used.static voidsetForceThreads(boolean forceThreads)static voidsetNumberOfThreads(int n)Sets the number of threadsstatic voidsetThreadsBeginN_1D(int n)Sets the minimal size of 1D data for which threads are used.static voidsetThreadsBeginN_1D_FFT_2Threads(int n)Sets the minimal size of 1D data for which two threads are used.static voidsetThreadsBeginN_1D_FFT_4Threads(int n)Sets the minimal size of 1D data for which four threads are used.static voidsetThreadsBeginN_2D(int n)Sets the minimal size of 2D data for which threads are used.static voidsetThreadsBeginN_3D(int n)Sets the minimal size of 3D data for which threads are used.static voidsleep(long millis)Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds.static java.util.concurrent.Future<?>submit(java.lang.Runnable task)Submits a Runnable task for execution and returns a Future representing that task.static <T> java.util.concurrent.Future<T>submit(java.util.concurrent.Callable<T> task)Submits a value-returning task for execution and returns a Future representing the pending results of the task.static voidwaitForCompletion(java.util.concurrent.Future<?>[] futures)Waits for all threads to complete computation.
-
-
-
Method Detail
-
extendDimension
public static int extendDimension(int x)
-
getNumberOfProcessors
public static int getNumberOfProcessors()
Returns the number of available processors- Returns:
- number of available processors
-
getNumberOfThreads
public static int getNumberOfThreads()
Returns the current number of threads.- Returns:
- the current number of threads.
-
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
-
isForceThreads
public static boolean isForceThreads()
- Returns:
- the forceThreads
-
isPowerOf2
public static boolean isPowerOf2(int n)
Checks if n is a power-of-two number- Parameters:
n- input parameter- Returns:
- true if n is power of 2
-
nextExp2
public static int nextExp2(int n)
-
nextPow2
public static int nextPow2(int x)
Returns the closest power of two greater than or equal to x.- Parameters:
x- input parameter- Returns:
- the closest power of two greater than or equal to x
-
prevPow2
public static int prevPow2(int x)
Returns the closest power of two less than or equal to x- Parameters:
x- input parameter- Returns:
- the closest power of two less then or equal to x
-
resetThreadsBeginN
public static void resetThreadsBeginN()
Resets the minimal size of 1D, 2D and 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.
-
setForceThreads
public static void setForceThreads(boolean forceThreads)
- Parameters:
forceThreads- the forceThreads to set
-
setNumberOfThreads
public static void setNumberOfThreads(int n)
Sets the number of threads- Parameters:
n- number of requested threads
-
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_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_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
-
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- sleep duration in [ms]
-
submit
public static <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T> task)
Submits a value-returning task for execution and returns a Future representing the pending results of the task.- Type Parameters:
T- value type of callable- Parameters:
task- task for execution- Returns:
- a handle to the task submitted for execution
-
submit
public static java.util.concurrent.Future<?> submit(java.lang.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
-
waitForCompletion
public static void waitForCompletion(java.util.concurrent.Future<?>[] futures)
Waits for all threads to complete computation.- Parameters:
futures- handles to running threads
-
-