Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pmtool
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Merge Requests
0
Merge Requests
0
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
EYRAUD-DUBOIS Lionel
pmtool
Commits
1d692d0f
Commit
1d692d0f
authored
Mar 05, 2020
by
EYRAUD-DUBOIS Lionel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bugfix
parent
55cc212b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
7 additions
and
2 deletions
+7
-2
core/ItemManager.cpp
core/ItemManager.cpp
+4
-0
schedulers/GreedyAlgorithm.cpp
schedulers/GreedyAlgorithm.cpp
+3
-2
No files found.
core/ItemManager.cpp
View file @
1d692d0f
...
...
@@ -33,6 +33,10 @@ dataAvailTimes(ins->itemSizes.size()), sourceLocation(ins->itemSizes.size(), -1)
double
ItemManager
::
sendItemTo
(
int
item
,
int
dstMemNode
,
double
currentTime
)
{
if
(
dataAvailTimes
[
item
][
dstMemNode
]
<
0
)
{
int
src
=
sourceLocation
[
item
];
// Ideally, I could choose the source location that minimizes commEndTime ?
if
(
src
<
0
||
src
>=
ins
->
nbMemoryNodes
)
{
cerr
<<
"sendItemTo for item "
<<
ins
->
itemNames
[
item
]
<<
" to "
<<
dstMemNode
<<
" at "
<<
currentTime
<<
": sourceLocation is invalid "
<<
src
<<
endl
;
throw
(
1
);
}
double
commEndTime
=
comms
.
newTransfer
(
dataAvailTimes
[
item
][
src
],
src
,
dstMemNode
,
ins
->
itemSizes
[
item
],
currentTime
);
dataAvailTimes
[
item
][
dstMemNode
]
=
commEndTime
;
return
commEndTime
;
...
...
schedulers/GreedyAlgorithm.cpp
View file @
1d692d0f
#include "GreedyAlgorithm.h"
#include "CommSequence.h"
#include "util.h"
#include <set>
#include <iostream>
...
...
@@ -77,13 +76,15 @@ double GreedyAlgorithm::compute(Instance& ins, SchedAction* action) {
throw
(
1
);
}
if
(
verbosity
>=
6
)
cout
<<
"Greedy: "
<<
currentTime
<<
" chosen task is #"
<<
chosenTask
<<
", "
<<
ins
.
taskIDs
[
chosenTask
]
<<
endl
;
double
startTime
=
currentTime
;
if
(
doComms
)
{
// Compute a finish time which takes communication into account.
for
(
int
&
item
:
ins
.
itemsRequired
[
chosenTask
])
{
int
dst
=
ins
.
memoryNodes
[
t
][
index
];
startTime
=
max
(
startTime
,
itemManager
->
sendItemTo
(
t
,
dst
,
currentTime
));
startTime
=
max
(
startTime
,
itemManager
->
sendItemTo
(
item
,
dst
,
currentTime
));
}
}
...
...
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