Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 4dda9a58 authored by PRUVOST Florent's avatar PRUVOST Florent
Browse files

flush starpu mpi data in pztrsm and pzgemm for potrs+check on large systems

parent 71579932
No related branches found
No related tags found
No related merge requests found
......@@ -135,6 +135,18 @@ void morse_pzgemm(MORSE_enum transA, MORSE_enum transB,
}
}
}
if (transA == MorseNoTrans) {
for (k = 0; k < A->nt; k++) {
MORSE_TASK_dataflush( &options, A(m, k) );
}
} else {
for (k = 0; k < A->mt; k++) {
MORSE_TASK_dataflush( &options, A(k, m) );
}
}
for (n = 0; n < C->nt; n++) {
MORSE_TASK_dataflush( &options, C(m, n) );
}
}
RUNTIME_options_finalize(&options, morse);
MORSE_TASK_dataflush_all();
......
......@@ -75,7 +75,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
lalpha, A(B->mt-1-k, B->mt-1-k), lda, /* lda * tempkm */
B(B->mt-1-k, n), ldb); /* ldb * tempnn */
}
//MORSE_TASK_dataflush( &options, A(B->mt-1-k, B->mt-1-k) );
MORSE_TASK_dataflush( &options, A(B->mt-1-k, B->mt-1-k) );
for (m = k+1; m < B->mt; m++) {
for (n = 0; n < B->nt; n++) {
......@@ -88,11 +88,11 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
B(B->mt-1-k, n ), ldb,
lalpha, B(B->mt-1-m, n ), B->mb);
}
//MORSE_TASK_dataflush( &options, A(B->mt-1-m, B->mt-1-k) );
MORSE_TASK_dataflush( &options, A(B->mt-1-m, B->mt-1-k) );
}
for (n = 0; n < B->nt; n++) {
MORSE_TASK_dataflush( &options, B(B->mt-1-k, n) );
}
// for (n = 0; n < B->nt; n++) {
// MORSE_TASK_dataflush( &options, B(B->mt-1-k, n) );
// }
}
}
/*
......@@ -113,7 +113,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
lalpha, A(k, k), lda,
B(k, n), ldb);
}
//MORSE_TASK_dataflush( &options, A(k, k) );
MORSE_TASK_dataflush( &options, A(k, k) );
for (m = k+1; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
......@@ -128,11 +128,11 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
B(k, n), B->mb,
lalpha, B(m, n), ldb);
}
//MORSE_TASK_dataflush( &options, A(k, m) );
MORSE_TASK_dataflush( &options, A(k, m) );
}
for (n = 0; n < B->nt; n++) {
MORSE_TASK_dataflush( &options, B(k, n) );
}
// for (n = 0; n < B->nt; n++) {
// MORSE_TASK_dataflush( &options, B(k, n) );
// }
}
}
}
......@@ -155,6 +155,8 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
lalpha, A(k, k), lda,
B(k, n), ldb);
}
MORSE_TASK_dataflush( &options, A(k, k) );
for (m = k+1; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
lda = BLKLDD(A, m);
......@@ -169,6 +171,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
B(k, n), B->mb,
lalpha, B(m, n), ldb);
}
MORSE_TASK_dataflush( &options, A(m, k) );
}
for (n = 0; n < B->nt; n++) {
MORSE_TASK_dataflush( &options, B(k, n) );
}
}
}
......@@ -190,6 +196,8 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
lalpha, A(B->mt-1-k, B->mt-1-k), lda,
B(B->mt-1-k, n), ldb);
}
MORSE_TASK_dataflush( &options, A(B->mt-1-k, B->mt-1-k) );
for (m = k+1; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
for (n = 0; n < B->nt; n++) {
......@@ -202,6 +210,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
B(B->mt-1-k, n ), ldb,
lalpha, B(B->mt-1-m, n ), B->mb);
}
MORSE_TASK_dataflush( &options, A(B->mt-1-k, B->mt-1-m) );
}
for (n = 0; n < B->nt; n++) {
MORSE_TASK_dataflush( &options, B(B->mt-1-k, n) );
}
}
}
......@@ -227,6 +239,8 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
lalpha, A(k, k), lda, /* lda * tempkn */
B(m, k), ldb); /* ldb * tempkn */
}
MORSE_TASK_dataflush( &options, A(k, k) );
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
......@@ -240,6 +254,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
A(k, n), lda, /* lda * tempnn */
lalpha, B(m, n), ldb); /* ldb * tempnn */
}
MORSE_TASK_dataflush( &options, B(m, k) );
}
for (n = k+1; n < B->nt; n++) {
MORSE_TASK_dataflush( &options, A(k, n) );
}
}
}
......@@ -259,6 +277,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
tempmm, tempkn, A->mb,
alpha, A(B->nt-1-k, B->nt-1-k), lda, /* lda * tempkn */
B( m, B->nt-1-k), ldb); /* ldb * tempkn */
MORSE_TASK_dataflush( &options, A(B->nt-1-k, B->nt-1-k) );
for (n = k+1; n < B->nt; n++) {
MORSE_TASK_zgemm(
......@@ -269,6 +288,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
A(B->nt-1-n, B->nt-1-k), A->mb, /* A->mb * tempkn (Never last row) */
zone, B(m, B->nt-1-n), ldb); /* ldb * B->nb */
}
MORSE_TASK_dataflush( &options, B(m, B->nt-1-k) );
}
for (n = k+1; n < B->nt; n++) {
MORSE_TASK_dataflush( &options, A(B->nt-1-n, B->nt-1-k) );
}
}
}
......@@ -291,6 +314,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
tempmm, tempkn, A->mb,
lalpha, A(B->nt-1-k, B->nt-1-k), lda, /* lda * tempkn */
B( m, B->nt-1-k), ldb); /* ldb * tempkn */
MORSE_TASK_dataflush( &options, A(B->nt-1-k, B->nt-1-k) );
for (n = k+1; n < B->nt; n++) {
MORSE_TASK_zgemm(
......@@ -301,6 +325,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
A(B->nt-1-k, B->nt-1-n), lda, /* lda * B->nb */
lalpha, B(m, B->nt-1-n), ldb); /* ldb * B->nb */
}
MORSE_TASK_dataflush( &options, B(m, B->nt-1-k) );
}
for (n = k+1; n < B->nt; n++) {
MORSE_TASK_dataflush( &options, A(B->nt-1-k, B->nt-1-n) );
}
}
}
......@@ -320,6 +348,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
tempmm, tempkn, A->mb,
alpha, A(k, k), lda, /* lda * tempkn */
B(m, k), ldb); /* ldb * tempkn */
MORSE_TASK_dataflush( &options, A(k, k) );
for (n = k+1; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
......@@ -332,6 +361,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
A(n, k), ldan, /* ldan * tempkn */
zone, B(m, n), ldb); /* ldb * tempnn */
}
MORSE_TASK_dataflush( &options, B(m, k) );
}
for (n = k+1; n < B->nt; n++) {
MORSE_TASK_dataflush( &options, A(n, k) );
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment