PLASMA
2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
|
#include <stdlib.h>
#include <sys/types.h>
#include <assert.h>
#include "common.h"
#include "primes.h"
#include "gkkleader.h"
Go to the source code of this file.
Functions | |
int | plasma_dshift (plasma_context_t *plasma, int m, int n, double *A, int nprob, int me, int ne, int L, PLASMA_sequence *sequence, PLASMA_request *request) |
void | plasma_pdshift (plasma_context_t *plasma) |
void | plasma_pdshift_quark (int m, int n, int L, double *A, int *leaders, int nleaders, int nprob, PLASMA_sequence *sequence, PLASMA_request *request) |
PLASMA InPlaceTransformation module PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver
This work is the implementation of an inplace transformation based on the GKK algorithm by Gustavson, Karlsson, Kagstrom and its fortran implementation.
d Tue Nov 22 14:35:42 2011
Definition in file pdshift.c.
int plasma_dshift | ( | plasma_context_t * | plasma, |
int | m, | ||
int | n, | ||
double * | A, | ||
int | nprob, | ||
int | me, | ||
int | ne, | ||
int | L, | ||
PLASMA_sequence * | sequence, | ||
PLASMA_request * | request | ||
) |
plasma_dgetmi2 Implementation of inplace transposition based on the GKK algorithm by Gustavson, Karlsson, Kagstrom. This algorithm shift some cycles to transpose the matrix.
[in] | m | Number of rows of matrix A |
[in] | n | Number of columns of matrix A |
[in,out] | A | Matrix of size L*m*n |
[in] | nprob | Number of parallel and independant problems |
[in] | me | Number of rows of the problem |
[in] | ne | Number of columns in the problem |
[in] | L | Size of chunk to use for transformation |
Definition at line 60 of file pdshift.c.
References GKK_BalanceLoad(), GKK_getLeaderNbr(), L, minloc(), plasma_dynamic_call_9, PLASMA_ERR_ILLEGAL_VALUE, plasma_error(), PLASMA_GRPSIZE, plasma_pdshift(), plasma_request_fail(), PLASMA_SCHEDULING, plasma_shared_alloc(), plasma_shared_free(), PLASMA_SIZE, plasma_static_call_9, PLASMA_STATIC_SCHEDULING, PLASMA_SUCCESS, and PlasmaInteger.
void plasma_pdshift | ( | plasma_context_t * | plasma | ) |
plasma_pdshift shifts a batch of cycles in parallel.
[in] | plasma | Plasma context |
[in] | m | Number of rows of the panel to shift. |
[in] | n | Number of columns of the panel to shift |
[in] | L | Size of each chunk to shift (Usually mb) |
[in,out] | A | |
[in] | leaders | |
[in] | nleaders | |
[in] | thrdbypb |
Definition at line 231 of file pdshift.c.
References A, CORE_dshiftw(), L, modpow(), plasma_barrier(), plasma_private_alloc(), plasma_private_free(), PLASMA_RANK, PLASMA_SUCCESS, plasma_unpack_args_9, PlasmaRealDouble, plasma_sequence_t::status, and W.
void plasma_pdshift_quark | ( | int | m, |
int | n, | ||
int | L, | ||
double * | A, | ||
int * | leaders, | ||
int | nleaders, | ||
int | nprob, | ||
PLASMA_sequence * | sequence, | ||
PLASMA_request * | request | ||
) |
Definition at line 289 of file pdshift.c.
References CORE_foo_quark(), INOUT, L, plasma_context_self(), PLASMA_SUCCESS, plasma_context_struct::quark, QUARK_CORE_dshift(), QUARK_Insert_Task(), plasma_sequence_t::quark_sequence, QUARK_Task_Flag_Set(), Quark_Task_Flags_Initializer, plasma_sequence_t::status, TASK_SEQUENCE, TASKCOLOR, TASKLABEL, and VALUE.