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
SWIFT
SWIFTsim
Commits
1e597100
Commit
1e597100
authored
Nov 10, 2017
by
lhausamm
Browse files
Formating
parent
7866ffb8
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/engine.c
View file @
1e597100
...
...
@@ -2640,10 +2640,8 @@ void engine_maketasks(struct engine *e) {
/* Set the tasks age. */
e
->
tasks_age
=
0
;
#ifdef SWIFT_DEBUG_CHECKS
if
(
e
->
ti_current
==
0
)
scheduler_write_dependency
(
sched
);
if
(
e
->
ti_current
==
0
)
scheduler_write_dependency
(
sched
);
#endif
if
(
e
->
verbose
)
...
...
src/scheduler.c
View file @
1e597100
...
...
@@ -110,26 +110,24 @@ void scheduler_addunlock(struct scheduler *s, struct task *ta,
s
->
unlocks
[
ind
]
=
tb
;
s
->
unlock_ind
[
ind
]
=
ta
-
s
->
tasks
;
atomic_inc
(
&
s
->
completed_unlock_writes
);
}
void
scheduler_write_dependency
(
struct
scheduler
*
s
)
{
#ifdef WITH_MPI
if
(
engine_rank
!=
0
)
return
;
if
(
engine_rank
!=
0
)
return
;
#endif
message
(
"Writing dependencies"
);
char
filename
[
200
]
=
"dependency_graph.dot"
;
char
tmp
[
200
];
/* text to write */
char
tmp
[
200
];
/* text to write */
char
*
line
=
NULL
;
/* buff for reading line */
size_t
len
=
0
;
ssize_t
read
;
FILE
*
f
;
/* file containing the output */
int
test
;
int
i
,
j
;
int
i
,
j
;
struct
task
*
ta
,
*
tb
;
...
...
@@ -143,49 +141,40 @@ void scheduler_write_dependency(struct scheduler *s) {
fprintf
(
f
,
"
\t
node[nodesep=0.15];
\n
"
);
fclose
(
f
);
/* loop over all tasks */
for
(
i
=
0
;
i
<
s
->
nr_tasks
;
i
++
)
{
ta
=
&
s
->
tasks
[
i
];
/* and theirs dependencies */
for
(
j
=
0
;
j
<
ta
->
nr_unlock_tasks
;
j
++
)
{
tb
=
ta
->
unlock_tasks
[
j
];
/* construct line */
sprintf
(
tmp
,
"
\t
%s_%s->%s_%s;
\n
"
,
taskID_names
[
ta
->
type
],
subtaskID_names
[
ta
->
subtype
],
taskID_names
[
tb
->
type
],
subtaskID_names
[
tb
->
subtype
]
);
f
=
open_and_check_file
(
filename
,
"r"
);
/* check if dependency already written */
test
=
1
;
/* loop over all lines */
while
(
test
&&
(
read
=
getline
(
&
line
,
&
len
,
f
))
!=
-
1
)
{
/* check if line == dependency word */
if
(
strcmp
(
tmp
,
line
)
==
0
)
test
=
0
;
}
fclose
(
f
);
/* Not written yet => write it */
if
(
test
)
{
f
=
open_and_check_file
(
filename
,
"a"
);
fprintf
(
f
,
tmp
);
fclose
(
f
);
}
}
for
(
i
=
0
;
i
<
s
->
nr_tasks
;
i
++
)
{
ta
=
&
s
->
tasks
[
i
];
/* and theirs dependencies */
for
(
j
=
0
;
j
<
ta
->
nr_unlock_tasks
;
j
++
)
{
tb
=
ta
->
unlock_tasks
[
j
];
/* construct line */
sprintf
(
tmp
,
"
\t
%s_%s->%s_%s;
\n
"
,
taskID_names
[
ta
->
type
],
subtaskID_names
[
ta
->
subtype
],
taskID_names
[
tb
->
type
],
subtaskID_names
[
tb
->
subtype
]);
f
=
open_and_check_file
(
filename
,
"r"
);
/* check if dependency already written */
test
=
1
;
/* loop over all lines */
while
(
test
&&
(
read
=
getline
(
&
line
,
&
len
,
f
))
!=
-
1
)
{
/* check if line == dependency word */
if
(
strcmp
(
tmp
,
line
)
==
0
)
test
=
0
;
}
fclose
(
f
);
/* Not written yet => write it */
if
(
test
)
{
f
=
open_and_check_file
(
filename
,
"a"
);
fprintf
(
f
,
tmp
);
fclose
(
f
);
}
}
}
f
=
open_and_check_file
(
filename
,
"a"
);
fprintf
(
f
,
"}"
);
...
...
src/tools.c
View file @
1e597100
...
...
@@ -23,11 +23,11 @@
#include
"../config.h"
/* Some standard headers. */
#include
<errno.h>
#include
<math.h>
#include
<stddef.h>
#include
<stdio.h>
#include
<stdlib.h>
#include
<errno.h>
/* This object's header. */
#include
"tools.h"
...
...
@@ -705,6 +705,7 @@ int compare_particles(struct part a, struct part b, double threshold) {
FILE
*
open_and_check_file
(
const
char
*
filename
,
const
char
*
mode
)
{
FILE
*
f
=
fopen
(
filename
,
mode
);
if
(
f
==
NULL
)
error
(
"Unable to open file '%s' in mode %s, error: %i"
,
filename
,
mode
,
errno
);
error
(
"Unable to open file '%s' in mode %s, error: %i"
,
filename
,
mode
,
errno
);
return
f
;
}
src/tools.h
View file @
1e597100
...
...
@@ -54,5 +54,4 @@ int compare_particles(struct part a, struct part b, double threshold);
FILE
*
open_and_check_file
(
const
char
*
filename
,
const
char
*
mode
);
#endif
/* SWIFT_TOOL_H */
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