Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
CodeVault
hpc-kernels
structured_grids
Commits
49b735c2
Commit
49b735c2
authored
Oct 12, 2016
by
Thomas Steinreiter
Browse files
Merge branch 'wireworld' of gitlab.com:steinret/CodeVault into wireworld
parents
675569f0
79c7424d
Changes
5
Hide whitespace changes
Inline
Side-by-side
cellular_automaton/wireworld_c/README.md
View file @
49b735c2
...
@@ -67,7 +67,7 @@ Follow the compilation instructions given in the main directory of the kernel sa
...
@@ -67,7 +67,7 @@ Follow the compilation instructions given in the main directory of the kernel sa
Assuming that the input file
`primes.wi`
is in your current working directory, to run the program you may use something similar to
Assuming that the input file
`primes.wi`
is in your current working directory, to run the program you may use something similar to
```
```
mpirun -n [nprocs] ./5_structured_wireworld_c primes
mpirun -n [nprocs] ./5_structured_wireworld_c primes
.wi
```
```
either on the command line or in your batch script. Note that only the input file's basename (omitting the file extension) is passed to the program.
either on the command line or in your batch script. Note that only the input file's basename (omitting the file extension) is passed to the program.
...
@@ -93,7 +93,7 @@ For large numbers as arguments to the option `-g`, the suffixes 'k' or 'M' may b
...
@@ -93,7 +93,7 @@ For large numbers as arguments to the option `-g`, the suffixes 'k' or 'M' may b
If you run
If you run
```
```
mpirun -n 12 ./5_structured_wireworld_c -i 10 -g 50k -v 2 --nprocs-x 3 primes
mpirun -n 12 ./5_structured_wireworld_c -i 10 -g 50k -v 2 --nprocs-x 3 primes
.wi
```
```
the output should look similar to
the output should look similar to
...
...
cellular_automaton/wireworld_c/configuration.c
View file @
49b735c2
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
#include
<mpi.h>
#include
<mpi.h>
#include
<stdlib.h>
#include
<stdlib.h>
#include
<stdio.h>
#include
<stdio.h>
#include
<string.h>
#include
"configuration.h"
#include
"configuration.h"
...
@@ -28,6 +29,8 @@ long parse_long(const char *str);
...
@@ -28,6 +29,8 @@ long parse_long(const char *str);
int
log_enabled
(
const
conf_t
*
c
,
int
lvl
);
int
log_enabled
(
const
conf_t
*
c
,
int
lvl
);
void
chop_wi_extension
(
char
*
filename
);
// ==========================================================================
// ==========================================================================
void
conf_init_default
(
conf_t
*
c
)
void
conf_init_default
(
conf_t
*
c
)
...
@@ -102,6 +105,7 @@ void conf_init_from_args(conf_t *c, int argc, char* argv[])
...
@@ -102,6 +105,7 @@ void conf_init_from_args(conf_t *c, int argc, char* argv[])
}
}
strncpy
(
c
->
file_basename
,
argv
[
optind
],
sizeof
(
c
->
file_basename
));
strncpy
(
c
->
file_basename
,
argv
[
optind
],
sizeof
(
c
->
file_basename
));
chop_wi_extension
(
c
->
file_basename
);
conf_set_or_validate_nprocs
(
c
);
conf_set_or_validate_nprocs
(
c
);
}
}
...
@@ -179,3 +183,18 @@ long parse_long(const char *str)
...
@@ -179,3 +183,18 @@ long parse_long(const char *str)
return
result
;
return
result
;
}
}
void
chop_wi_extension
(
char
*
filename
)
{
char
*
extension
=
strrchr
(
filename
,
'.'
);
if
(
extension
!=
NULL
)
{
if
(
strcmp
(
extension
,
FILE_EXT
)
==
0
)
{
*
extension
=
'\0'
;
}
else
{
fprintf
(
stderr
,
"Input file '%s' does not have expected file extension '%s'.
\n
"
,
filename
,
FILE_EXT
);
MPI_Abort
(
MPI_COMM_WORLD
,
EXIT_FAILURE
);
}
}
}
cellular_automaton/wireworld_c/main.c
View file @
49b735c2
...
@@ -67,7 +67,6 @@ void broadcast_configuration(conf_t *c) {
...
@@ -67,7 +67,6 @@ void broadcast_configuration(conf_t *c) {
void
read_input
(
const
conf_t
*
c
,
world_t
*
world
)
{
void
read_input
(
const
conf_t
*
c
,
world_t
*
world
)
{
int
rank
;
int
rank
;
MPI_Comm
cart_comm
;
char
input_filename
[
FILE_NAME_SZ
];
char
input_filename
[
FILE_NAME_SZ
];
MPI_File
file
;
MPI_File
file
;
...
...
cellular_automaton/wireworld_c/simulation.c
View file @
49b735c2
...
@@ -200,7 +200,7 @@ void do_simulation_persistent_request_no_overlap(world_t *world, size_t n_genera
...
@@ -200,7 +200,7 @@ void do_simulation_persistent_request_no_overlap(world_t *world, size_t n_genera
const
size_t
n_neighbors
=
world
->
transfer
.
n_neighbors
;
const
size_t
n_neighbors
=
world
->
transfer
.
n_neighbors
;
const
size_t
sz
=
world_get_storage_size
(
world
);
const
size_t
sz
=
world_get_storage_size
(
world
);
size_t
g
,
i
;
size_t
g
;
MPI_Request
*
requests
=
world
->
transfer
.
persistent_requests
;
MPI_Request
*
requests
=
world
->
transfer
.
persistent_requests
;
for
(
g
=
0
;
g
<
n_generations
;
g
++
)
{
for
(
g
=
0
;
g
<
n_generations
;
g
++
)
{
...
@@ -225,7 +225,7 @@ void do_simulation_persistent_request_overlap(world_t *world, size_t n_generatio
...
@@ -225,7 +225,7 @@ void do_simulation_persistent_request_overlap(world_t *world, size_t n_generatio
const
size_t
n_neighbors
=
world
->
transfer
.
n_neighbors
;
const
size_t
n_neighbors
=
world
->
transfer
.
n_neighbors
;
const
size_t
sz
=
world_get_storage_size
(
world
);
const
size_t
sz
=
world_get_storage_size
(
world
);
size_t
g
,
i
;
size_t
g
;
MPI_Request
*
requests
=
world
->
transfer
.
persistent_requests
;
MPI_Request
*
requests
=
world
->
transfer
.
persistent_requests
;
for
(
g
=
0
;
g
<
n_generations
;
g
++
)
{
for
(
g
=
0
;
g
<
n_generations
;
g
++
)
{
...
...
cellular_automaton/wireworld_c/world.c
View file @
49b735c2
#include
<string.h>
#include
<string.h>
#include
<stdlib.h>
#include
"world.h"
#include
"world.h"
...
@@ -44,7 +45,6 @@ void world_init(world_t *world, size_t *global_size, const conf_t *c)
...
@@ -44,7 +45,6 @@ void world_init(world_t *world, size_t *global_size, const conf_t *c)
{
{
int
dim
,
lo
,
hi
;
int
dim
,
lo
,
hi
;
int
nprocs
[
2
],
periods
[
2
],
proc_coord
[
2
];
int
nprocs
[
2
],
periods
[
2
],
proc_coord
[
2
];
char
*
buffer
;
size_t
storage_size
;
size_t
storage_size
;
MPI_Comm
cart_comm
;
MPI_Comm
cart_comm
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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