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
......@@ -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) );
}
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment