Parallel Utility Module
+ Collaboration diagram for Parallel Utility Module:

Functions

void jit_parallel_ndim_calc (t_jit_parallel_ndim *p)
 Tasks N-dimensional matrix calcuations to multiple threads if appropriate.
void jit_parallel_ndim_simplecalc1 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, long flags1)
 Tasks one input/output N-dimensional matrix calcuations to multiple threads if appropriate.
void jit_parallel_ndim_simplecalc2 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, long flags1, long flags2)
 Tasks two input/output N-dimensional matrix calcuations to multiple threads if appropriate.
void jit_parallel_ndim_simplecalc3 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, t_jit_matrix_info *minfo3, char *bp3, long flags1, long flags2, long flags3)
 Tasks three input/output N-dimensional matrix calcuations to multiple threads if appropriate.
void jit_parallel_ndim_simplecalc4 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, t_jit_matrix_info *minfo3, char *bp3, t_jit_matrix_info *minfo4, char *bp4, long flags1, long flags2, long flags3, long flags4)
 Tasks four input/output N-dimensional matrix calcuations to multiple threads if appropriate.

Function Documentation

void jit_parallel_ndim_calc ( t_jit_parallel_ndim *  p)

Tasks N-dimensional matrix calcuations to multiple threads if appropriate.

This function is ultimately what the other parallel utility functions call after having set up the t_jit_parallel_ndim struct. The operation is tasked to multiple threads if all of the following conditions are met:

  • multiple processors or cores are present
  • parallel processing is enabled
  • the size of the matrix data is larger then the parallel threshold
Parameters:
pparallel ndim calc data
void jit_parallel_ndim_simplecalc1 ( method  fn,
void *  data,
long  dimcount,
long *  dim,
long  planecount,
t_jit_matrix_info minfo1,
char *  bp1,
long  flags1 
)

Tasks one input/output N-dimensional matrix calcuations to multiple threads if appropriate.

This function fills out the t_jit_parallel_ndim struct for a one input/output N-dimensional matrix calc method, and calls jit_parallel_ndim_calc. This function does not distinguish between what is an input or output.

Parameters:
fnN-dimensional matrix calc method
datauser defined pointer (typically object)
dimcountmaster number of dimensions to iterate
dimmaster pointer to dimension sizes
planecountmaster number of planes
minfo1matrix info for first input/output
bp1matrix data pointer for first input/output
flags1parallel flags for first input/output
void jit_parallel_ndim_simplecalc2 ( method  fn,
void *  data,
long  dimcount,
long *  dim,
long  planecount,
t_jit_matrix_info minfo1,
char *  bp1,
t_jit_matrix_info minfo2,
char *  bp2,
long  flags1,
long  flags2 
)

Tasks two input/output N-dimensional matrix calcuations to multiple threads if appropriate.

This function fills out the t_jit_parallel_ndim struct for a two input/output N-dimensional matrix calc method, and calls jit_parallel_ndim_calc. This function does not distinguish between what is an input or output.

Parameters:
fnN-dimensional matrix calc method
datauser defined pointer (typically object)
dimcountmaster number of dimensions to iterate
dimmaster pointer to dimension sizes
planecountmaster number of planes
minfo1matrix info for first input/output
bp1matrix data pointer for first input/output
flags1parallel flags for first input/output
minfo2matrix info for second input/output
bp2matrix data pointer for second input/output
flags2parallel flags for second input/output
void jit_parallel_ndim_simplecalc3 ( method  fn,
void *  data,
long  dimcount,
long *  dim,
long  planecount,
t_jit_matrix_info minfo1,
char *  bp1,
t_jit_matrix_info minfo2,
char *  bp2,
t_jit_matrix_info minfo3,
char *  bp3,
long  flags1,
long  flags2,
long  flags3 
)

Tasks three input/output N-dimensional matrix calcuations to multiple threads if appropriate.

This function fills out the t_jit_parallel_ndim struct for a three input/output N-dimensional matrix calc method, and calls jit_parallel_ndim_calc. This function does not distinguish between what is an input or output.

Parameters:
fnN-dimensional matrix calc method
datauser defined pointer (typically object)
dimcountmaster number of dimensions to iterate
dimmaster pointer to dimension sizes
planecountmaster number of planes
minfo1matrix info for first input/output
bp1matrix data pointer for first input/output
flags1parallel flags for first input/output
minfo2matrix info for second input/output
bp2matrix data pointer for second input/output
flags2parallel flags for second input/output
minfo3matrix info for third input/output
bp3matrix data pointer for third input/output
flags3parallel flags for third input/output
void jit_parallel_ndim_simplecalc4 ( method  fn,
void *  data,
long  dimcount,
long *  dim,
long  planecount,
t_jit_matrix_info minfo1,
char *  bp1,
t_jit_matrix_info minfo2,
char *  bp2,
t_jit_matrix_info minfo3,
char *  bp3,
t_jit_matrix_info minfo4,
char *  bp4,
long  flags1,
long  flags2,
long  flags3,
long  flags4 
)

Tasks four input/output N-dimensional matrix calcuations to multiple threads if appropriate.

This function fills out the t_jit_parallel_ndim struct for a three input/output N-dimensional matrix calc method, and calls jit_parallel_ndim_calc. This function does not distinguish between what is an input or output.

Parameters:
fnN-dimensional matrix calc method
datauser defined pointer (typically object)
dimcountmaster number of dimensions to iterate
dimmaster pointer to dimension sizes
planecountmaster number of planes
minfo1matrix info for first input/output
bp1matrix data pointer for first input/output
flags1parallel flags for first input/output
minfo2matrix info for second input/output
bp2matrix data pointer for second input/output
flags2parallel flags for second input/output
minfo3matrix info for third input/output
bp3matrix data pointer for third input/output
flags3parallel flags for third input/output
minfo4matrix info for fourth input/output
bp4matrix data pointer for fourth input/output
flags4parallel flags for fourth input/output