|
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_cshift (plasma_context_t *plasma, int m, int n, PLASMA_Complex32_t *A, int nprob, int me, int ne, int L, PLASMA_sequence *sequence, PLASMA_request *request) |
| void | plasma_pcshift (plasma_context_t *plasma) |
| void | plasma_pcshift_quark (int m, int n, int L, PLASMA_Complex32_t *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.
c Tue Nov 22 14:35:42 2011
Definition in file pcshift.c.
| int plasma_cshift | ( | plasma_context_t * | plasma, |
| int | m, | ||
| int | n, | ||
| PLASMA_Complex32_t * | A, | ||
| int | nprob, | ||
| int | me, | ||
| int | ne, | ||
| int | L, | ||
| PLASMA_sequence * | sequence, | ||
| PLASMA_request * | request | ||
| ) |
plasma_cgetmi2 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 pcshift.c.
References GKK_BalanceLoad(), GKK_getLeaderNbr(), L, minloc(), plasma_dynamic_call_9, PLASMA_ERR_ILLEGAL_VALUE, plasma_error(), PLASMA_GRPSIZE, plasma_pcshift(), 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_pcshift | ( | plasma_context_t * | plasma | ) |
plasma_pcshift 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 pcshift.c.
References A, CORE_cshiftw(), L, modpow(), plasma_barrier(), plasma_private_alloc(), plasma_private_free(), PLASMA_RANK, PLASMA_SUCCESS, plasma_unpack_args_9, PlasmaComplexFloat, plasma_sequence_t::status, and W.


| void plasma_pcshift_quark | ( | int | m, |
| int | n, | ||
| int | L, | ||
| PLASMA_Complex32_t * | A, | ||
| int * | leaders, | ||
| int | nleaders, | ||
| int | nprob, | ||
| PLASMA_sequence * | sequence, | ||
| PLASMA_request * | request | ||
| ) |
Definition at line 289 of file pcshift.c.
References CORE_foo_quark(), INOUT, L, plasma_context_self(), PLASMA_SUCCESS, plasma_context_struct::quark, QUARK_CORE_cshift(), 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.
