Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Rob Latham
MPICH-BlueGene
Commits
9d7d493b
Commit
9d7d493b
authored
Nov 08, 2014
by
Antonio Pena Monferrer
Committed by
Wesley Bland
Nov 12, 2014
Browse files
Added support for large-count datatype tests
Signed-off-by:
Wesley Bland
<
wbland@anl.gov
>
parent
b56f4f1d
Changes
3
Hide whitespace changes
Inline
Side-by-side
test/mpi/include/mpitest.h
View file @
9d7d493b
...
...
@@ -38,7 +38,7 @@ void MTestGetDbgInfo(int *dbgflag, int *verbose);
typedef
struct
_MTestDatatype
{
MPI_Datatype
datatype
;
void
*
buf
;
/* buffer to use in communication */
int
count
;
/* count to use for this datatype */
MPI_A
int
count
;
/* count to use for this datatype */
int
isBasic
;
/* true if the type is predefined */
int
printErrors
;
/* true if errors should be printed
(used by the CheckBuf routines) */
...
...
@@ -72,7 +72,7 @@ void MTestInitFullDatatypes();
void
MTestInitMinDatatypes
();
int
MTestCheckRecv
(
MPI_Status
*
,
MTestDatatype
*
);
int
MTestGetDatatypes
(
MTestDatatype
*
,
MTestDatatype
*
,
int
);
int
MTestGetDatatypes
(
MTestDatatype
*
,
MTestDatatype
*
,
MPI_A
int
);
void
MTestResetDatatypes
(
void
);
void
MTestFreeDatatype
(
MTestDatatype
*
);
const
char
*
MTestGetDatatypeName
(
MTestDatatype
*
);
...
...
test/mpi/util/mtest_datatype.c
View file @
9d7d493b
...
...
@@ -82,7 +82,7 @@ static void *MTestTypeContigInit(MTestDatatype * mtype)
if
(
mtype
->
count
>
0
)
{
unsigned
char
*
p
;
int
i
,
totsize
;
MPI_A
int
i
,
totsize
;
merr
=
MPI_Type_extent
(
mtype
->
datatype
,
&
size
);
if
(
merr
)
MTestPrintError
(
merr
);
...
...
@@ -116,8 +116,8 @@ static int MTestTypeContigCheckbuf(MTestDatatype * mtype)
{
unsigned
char
*
p
;
unsigned
char
expected
;
int
i
,
totsize
,
err
=
0
,
merr
;
MPI_Aint
size
;
int
err
=
0
,
merr
;
MPI_Aint
i
,
totsize
,
size
;
p
=
(
unsigned
char
*
)
mtype
->
buf
;
if
(
p
)
{
...
...
@@ -130,7 +130,7 @@ static int MTestTypeContigCheckbuf(MTestDatatype * mtype)
if
(
p
[
i
]
!=
expected
)
{
err
++
;
if
(
mtype
->
printErrors
&&
err
<
10
)
{
printf
(
"Data expected = %x but got p[%d] = %x
\n
"
,
expected
,
i
,
p
[
i
]);
printf
(
"Data expected = %x but got p[%
l
d] = %x
\n
"
,
expected
,
i
,
p
[
i
]);
fflush
(
stdout
);
}
}
...
...
@@ -154,7 +154,8 @@ static void *MTestTypeVectorInit(MTestDatatype * mtype)
if
(
mtype
->
count
>
0
)
{
unsigned
char
*
p
;
int
i
,
j
,
k
,
nc
;
int
j
,
k
,
nc
;
MPI_Aint
i
;
merr
=
MPI_Type_extent
(
mtype
->
datatype
,
&
size
);
if
(
merr
)
...
...
@@ -257,7 +258,8 @@ static void *MTestTypeIndexedInit(MTestDatatype * mtype)
if
(
mtype
->
count
>
0
)
{
unsigned
char
*
p
;
int
i
,
j
,
k
,
b
,
nc
;
int
j
,
k
,
b
,
nc
;
MPI_Aint
i
;
/* Allocate buffer */
merr
=
MPI_Type_extent
(
mtype
->
datatype
,
&
size
);
...
...
@@ -371,7 +373,8 @@ static void *MTestTypeIndexedBlockInit(MTestDatatype * mtype)
if
(
mtype
->
count
>
0
)
{
unsigned
char
*
p
;
int
i
,
k
,
j
,
nc
;
int
k
,
j
,
nc
;
MPI_Aint
i
;
/* Allocate the send/recv buffer */
merr
=
MPI_Type_extent
(
mtype
->
datatype
,
&
size
);
...
...
@@ -477,7 +480,8 @@ static void *MTestTypeSubarrayInit(MTestDatatype * mtype)
if
(
mtype
->
count
>
0
)
{
unsigned
char
*
p
;
int
i
,
k
,
j
,
b
,
nc
;
int
k
,
j
,
b
,
nc
;
MPI_Aint
i
;
/* Allocate the send/recv buffer */
merr
=
MPI_Type_extent
(
mtype
->
datatype
,
&
size
);
...
...
@@ -1240,7 +1244,7 @@ void *MTestTypeInitRecv(MTestDatatype * mtype)
if
(
mtype
->
count
>
0
)
{
signed
char
*
p
;
int
i
,
totsize
;
MPI_A
int
i
,
totsize
;
merr
=
MPI_Type_extent
(
mtype
->
datatype
,
&
size
);
if
(
merr
)
MTestPrintError
(
merr
);
...
...
test/mpi/util/mtest_datatype_gen.c
View file @
9d7d493b
...
...
@@ -178,12 +178,12 @@ void MTestInitMinDatatypes()
/* Routine to define various sets of blocklen/count/stride for derived datatypes. */
/* ------------------------------------------------------------------------------ */
static
inline
int
MTestDdtStructDefine
(
int
ddt_index
,
int
tot_count
,
int
*
count
,
int
*
blen
,
int
*
stride
,
int
*
align_tot_count
)
static
inline
int
MTestDdtStructDefine
(
int
ddt_index
,
MPI_A
int
tot_count
,
MPI_A
int
*
count
,
MPI_A
int
*
blen
,
MPI_A
int
*
stride
,
MPI_A
int
*
align_tot_count
)
{
int
merr
=
0
;
int
ddt_c_st
;
int
_short
=
0
,
_align_tot_count
=
0
,
_count
=
0
,
_blen
=
0
,
_stride
=
0
;
MPI_A
int
_short
=
0
,
_align_tot_count
=
0
,
_count
=
0
,
_blen
=
0
,
_stride
=
0
;
ddt_c_st
=
ddt_index
%
MTEST_DDT_NUM_SUBTESTS
;
/* Get short value according to user specified tot_count.
...
...
@@ -244,7 +244,7 @@ static inline int MTestDdtStructDefine(int ddt_index, int tot_count, int *count,
/* ------------------------------------------------------------------------ */
static
inline
int
MTestGetBasicDatatypes
(
MTestDatatype
*
sendtype
,
MTestDatatype
*
recvtype
,
int
tot_count
)
MTestDatatype
*
recvtype
,
MPI_A
int
tot_count
)
{
int
merr
=
0
;
int
bdt_index
=
datatype_index
-
MTEST_BDT_START_IDX
;
...
...
@@ -303,11 +303,12 @@ static inline int MTestGetBasicDatatypes(MTestDatatype * sendtype,
/* ------------------------------------------------------------------------ */
static
inline
int
MTestGetSendDerivedDatatypes
(
MTestDatatype
*
sendtype
,
MTestDatatype
*
recvtype
,
int
tot_count
)
MTestDatatype
*
recvtype
,
MPI_A
int
tot_count
)
{
int
merr
=
0
;
int
ddt_datatype_index
,
ddt_c_dt
;
int
blen
,
stride
,
count
,
align_tot_count
,
tsize
=
1
;
MPI_Count
tsize
=
1
;
MPI_Aint
blen
,
stride
,
count
,
align_tot_count
;;
MPI_Datatype
old_type
=
MPI_DOUBLE
;
/* Check index */
...
...
@@ -336,7 +337,7 @@ static inline int MTestGetSendDerivedDatatypes(MTestDatatype * sendtype,
return
merr
;
sendtype
->
count
=
1
;
merr
=
MPI_Type_size
(
sendtype
->
datatype
,
&
tsize
);
merr
=
MPI_Type_size
_x
(
sendtype
->
datatype
,
&
tsize
);
if
(
merr
)
MTestPrintError
(
merr
);
...
...
@@ -351,11 +352,12 @@ static inline int MTestGetSendDerivedDatatypes(MTestDatatype * sendtype,
}
static
inline
int
MTestGetRecvDerivedDatatypes
(
MTestDatatype
*
sendtype
,
MTestDatatype
*
recvtype
,
int
tot_count
)
MTestDatatype
*
recvtype
,
MPI_A
int
tot_count
)
{
int
merr
=
0
;
int
ddt_datatype_index
,
ddt_c_dt
;
int
blen
,
stride
,
count
,
align_tot_count
,
tsize
;
MPI_Count
tsize
;
MPI_Aint
blen
,
stride
,
count
,
align_tot_count
;
MPI_Datatype
old_type
=
MPI_DOUBLE
;
/* Check index */
...
...
@@ -383,7 +385,7 @@ static inline int MTestGetRecvDerivedDatatypes(MTestDatatype * sendtype,
return
merr
;
recvtype
->
count
=
1
;
merr
=
MPI_Type_size
(
recvtype
->
datatype
,
&
tsize
);
merr
=
MPI_Type_size
_x
(
recvtype
->
datatype
,
&
tsize
);
if
(
merr
)
MTestPrintError
(
merr
);
...
...
@@ -400,7 +402,7 @@ static inline int MTestGetRecvDerivedDatatypes(MTestDatatype * sendtype,
/* ------------------------------------------------------------------------ */
/* Exposed routine to external tests */
/* ------------------------------------------------------------------------ */
int
MTestGetDatatypes
(
MTestDatatype
*
sendtype
,
MTestDatatype
*
recvtype
,
int
tot_count
)
int
MTestGetDatatypes
(
MTestDatatype
*
sendtype
,
MTestDatatype
*
recvtype
,
MPI_A
int
tot_count
)
{
int
merr
=
0
;
...
...
@@ -448,11 +450,11 @@ int MTestGetDatatypes(MTestDatatype * sendtype, MTestDatatype * recvtype, int to
datatype_index
++
;
if
(
verbose
>=
2
&&
datatype_index
>
0
)
{
i
nt
ssize
,
rsize
;
MPI_Cou
nt
ssize
,
rsize
;
const
char
*
sendtype_nm
=
MTestGetDatatypeName
(
sendtype
);
const
char
*
recvtype_nm
=
MTestGetDatatypeName
(
recvtype
);
MPI_Type_size
(
sendtype
->
datatype
,
&
ssize
);
MPI_Type_size
(
recvtype
->
datatype
,
&
rsize
);
MPI_Type_size
_x
(
sendtype
->
datatype
,
&
ssize
);
MPI_Type_size
_x
(
recvtype
->
datatype
,
&
rsize
);
MTestPrintfMsg
(
2
,
"Get datatypes: send = %s(size %d count %d basesize %d), "
"recv = %s(size %d count %d basesize %d), tot_count=%d
\n
"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment