Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Kirill Terekhov
INMOST
Commits
c5e58b47
Commit
c5e58b47
authored
Nov 10, 2020
by
Kirill Terekhov
Browse files
change the way the messages are packed to overcome 2Gb limit
parent
86377f47
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Source/Headers/inmost_mesh.h
View file @
c5e58b47
...
@@ -2336,9 +2336,9 @@ namespace INMOST
...
@@ -2336,9 +2336,9 @@ namespace INMOST
void
PackElementsEnumerate
(
elements_by_type
&
selems
,
TagInteger
pack_position
);
void
PackElementsEnumerate
(
elements_by_type
&
selems
,
TagInteger
pack_position
);
void
PackElementsUnenumerate
(
elements_by_type
&
selems
,
TagInteger
pack_position
);
void
PackElementsUnenumerate
(
elements_by_type
&
selems
,
TagInteger
pack_position
);
void
PackTagData
(
const
Tag
&
tag
,
const
elements_by_type
&
elements
,
int
destination
,
ElementType
mask
,
MarkerType
select
,
buffer_type
&
buffer
,
TagInteger
pack_position
);
void
PackTagData
(
const
Tag
&
tag
,
const
elements_by_type
&
elements
,
int
destination
,
ElementType
mask
,
MarkerType
select
,
buffer_type
&
buffer
,
TagInteger
pack_position
);
void
UnpackTagData
(
const
Tag
&
tag
,
const
elements_by_type
&
elements
,
int
source
,
ElementType
mask
,
MarkerType
select
,
buffer_type
&
buffer
,
int
&
position
,
ReduceOperation
op
,
const
elements_by_type
&
unpack_elements
);
//, proc_elements_by_type * send_elements = NULL);
void
UnpackTagData
(
const
Tag
&
tag
,
const
elements_by_type
&
elements
,
int
source
,
ElementType
mask
,
MarkerType
select
,
buffer_type
&
buffer
,
size_t
&
buffer_
position
,
ReduceOperation
op
,
const
elements_by_type
&
unpack_elements
);
//, proc_elements_by_type * send_elements = NULL);
void
PackElementsData
(
elements_by_type
&
input
,
buffer_type
&
buffer
,
int
destination
,
const
tag_set
&
tag_list
,
TagInteger
pack_position
,
bool
pack_gids
);
void
PackElementsData
(
elements_by_type
&
input
,
buffer_type
&
buffer
,
int
destination
,
const
tag_set
&
tag_list
,
TagInteger
pack_position
,
bool
pack_gids
);
void
UnpackElementsData
(
elements_by_type
&
output
,
buffer_type
&
buffer
,
int
source
,
int
&
position
,
tag_set
&
tag_list
);
void
UnpackElementsData
(
elements_by_type
&
output
,
buffer_type
&
buffer
,
int
source
,
size_t
&
buffer_
position
,
tag_set
&
tag_list
);
void
PrepareReceiveInner
(
Prepare
todo
,
exch_buffer_type
&
send_bufs
,
exch_buffer_type
&
recv_bufs
);
void
PrepareReceiveInner
(
Prepare
todo
,
exch_buffer_type
&
send_bufs
,
exch_buffer_type
&
recv_bufs
);
void
ExchangeDataInnerBegin
(
const
tag_set
&
tag
,
const
parallel_storage
&
from
,
const
parallel_storage
&
to
,
ElementType
mask
,
MarkerType
select
,
exchange_data
&
storage
);
void
ExchangeDataInnerBegin
(
const
tag_set
&
tag
,
const
parallel_storage
&
from
,
const
parallel_storage
&
to
,
ElementType
mask
,
MarkerType
select
,
exchange_data
&
storage
);
void
ExchangeDataInnerEnd
(
const
tag_set
&
tag
,
const
parallel_storage
&
from
,
const
parallel_storage
&
to
,
ElementType
mask
,
MarkerType
select
,
ReduceOperation
op
,
exchange_data
&
storage
);
void
ExchangeDataInnerEnd
(
const
tag_set
&
tag
,
const
parallel_storage
&
from
,
const
parallel_storage
&
to
,
ElementType
mask
,
MarkerType
select
,
ReduceOperation
op
,
exchange_data
&
storage
);
...
...
Source/Mesh/parallel.cpp
View file @
c5e58b47
This diff is collapsed.
Click to expand it.
Tests/pmesh_test001/main.cpp
View file @
c5e58b47
...
@@ -2,6 +2,19 @@
...
@@ -2,6 +2,19 @@
using
namespace
INMOST
;
using
namespace
INMOST
;
void
mpi_error_handler
(
MPI_Comm
*
communicator
,
int
*
error_code
,
...)
{
char
error_string
[
MPI_MAX_ERROR_STRING
];
int
error_string_length
;
printf
(
"mpi_error_handler: entry
\n
"
);
printf
(
"mpi_error_handler: error_code = %d
\n
"
,
*
error_code
);
MPI_Error_string
(
*
error_code
,
error_string
,
&
error_string_length
);
error_string
[
error_string_length
]
=
'\0'
;
printf
(
"mpi_error_handler: error_string = %s
\n
"
,
error_string
);
printf
(
"mpi_error_handler: exit
\n
"
);
throw
-
1
;
}
// Compute number of connected components
// Compute number of connected components
int
components
(
Mesh
*
m
,
Tag
t
)
int
components
(
Mesh
*
m
,
Tag
t
)
{
{
...
@@ -86,6 +99,10 @@ int main(int argc,char ** argv)
...
@@ -86,6 +99,10 @@ int main(int argc,char ** argv)
Mesh
::
Initialize
(
&
argc
,
&
argv
);
Mesh
::
Initialize
(
&
argc
,
&
argv
);
Partitioner
::
Initialize
(
&
argc
,
&
argv
);
Partitioner
::
Initialize
(
&
argc
,
&
argv
);
MPI_Errhandler
errhandler
;
MPI_Comm_create_errhandler
(
&
mpi_error_handler
,
&
errhandler
);
MPI_Comm_set_errhandler
(
MPI_COMM_WORLD
,
errhandler
);
Mesh
*
m
=
new
Mesh
();
// Create an empty mesh
Mesh
*
m
=
new
Mesh
();
// Create an empty mesh
m
->
SetCommunicator
(
INMOST_MPI_COMM_WORLD
);
// Set the MPI communicator for the mesh
m
->
SetCommunicator
(
INMOST_MPI_COMM_WORLD
);
// Set the MPI communicator for the mesh
...
...
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