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
H
HyperLoom
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
ADAS
HyperLoom
Commits
ef148a8d
Commit
ef148a8d
authored
Aug 29, 2016
by
Stanislav Bohm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
RF: "Mode" renamed to "Policy"
parent
29e89444
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
135 additions
and
135 deletions
+135
-135
src/client/loomplan_pb2.py
src/client/loomplan_pb2.py
+17
-17
src/client/plan.py
src/client/plan.py
+16
-16
src/libloom/loomplan.pb.cc
src/libloom/loomplan.pb.cc
+24
-24
src/libloom/loomplan.pb.h
src/libloom/loomplan.pb.h
+44
-44
src/proto/loomplan.proto
src/proto/loomplan.proto
+5
-5
src/server/taskmanager.cpp
src/server/taskmanager.cpp
+19
-19
src/server/taskmanager.h
src/server/taskmanager.h
+1
-1
src/server/tasknode.h
src/server/tasknode.h
+9
-9
No files found.
src/client/loomplan_pb2.py
View file @
ef148a8d
...
...
@@ -18,37 +18,37 @@ _sym_db = _symbol_database.Default()
DESCRIPTOR
=
_descriptor
.
FileDescriptor
(
name
=
'loomplan.proto'
,
package
=
'loomplan'
,
serialized_pb
=
_b
(
'
\n\x0e
loomplan.proto
\x12\x08
loomplan
\"\x
ae\x01\n\x04
Task
\x12\x11\n\t
task_type
\x18\x01
\x02
(
\x05\x12\x0e\n\x06\x63
onfig
\x18\x02
\x02
(
\x0c\x12\x11\n\t
input_ids
\x18\x03
\x03
(
\x05\x12\x30\n\x04
mode
\x18\x04
\x01
(
\x0e\x32\x13
.loomplan.Task.Mode:
\r
MODE_STANDARD
\"
>
\n\x04
Mode
\x12\x11\n\r
MODE_STANDARD
\x10\x01\x12\x0f\n\x0b
MODE_SIMPLE
\x10\x02\x12\x12\n\x0e
MODE
_SCHEDULER
\x10\x03\"
9
\n\x04
Plan
\x12\x1d\n\x05
tasks
\x18\x02
\x03
(
\x0b\x32\x0e
.loomplan.Task
\x12\x12\n\n
result_ids
\x18\x03
\x03
(
\x05\x42\x02
H
\x03
'
)
serialized_pb
=
_b
(
'
\n\x0e
loomplan.proto
\x12\x08
loomplan
\"\x
bc\x01\n\x04
Task
\x12\x11\n\t
task_type
\x18\x01
\x02
(
\x05\x12\x0e\n\x06\x63
onfig
\x18\x02
\x02
(
\x0c\x12\x11\n\t
input_ids
\x18\x03
\x03
(
\x05\x12\x36\n\x06
policy
\x18\x04
\x01
(
\x0e\x32\x15
.loomplan.Task.Policy:
\x0f
POLICY_STANDARD
\"
F
\n\x06
Policy
\x12\x13\n\x0f
POLICY_STANDARD
\x10\x01\x12\x11\n\r
POLICY_SIMPLE
\x10\x02\x12\x14\n\x10
POLICY
_SCHEDULER
\x10\x03\"
9
\n\x04
Plan
\x12\x1d\n\x05
tasks
\x18\x02
\x03
(
\x0b\x32\x0e
.loomplan.Task
\x12\x12\n\n
result_ids
\x18\x03
\x03
(
\x05\x42\x02
H
\x03
'
)
)
_sym_db
.
RegisterFileDescriptor
(
DESCRIPTOR
)
_TASK_
MODE
=
_descriptor
.
EnumDescriptor
(
name
=
'
Mode
'
,
full_name
=
'loomplan.Task.
Mode
'
,
_TASK_
POLICY
=
_descriptor
.
EnumDescriptor
(
name
=
'
Policy
'
,
full_name
=
'loomplan.Task.
Policy
'
,
filename
=
None
,
file
=
DESCRIPTOR
,
values
=
[
_descriptor
.
EnumValueDescriptor
(
name
=
'
MODE
_STANDARD'
,
index
=
0
,
number
=
1
,
name
=
'
POLICY
_STANDARD'
,
index
=
0
,
number
=
1
,
options
=
None
,
type
=
None
),
_descriptor
.
EnumValueDescriptor
(
name
=
'
MODE
_SIMPLE'
,
index
=
1
,
number
=
2
,
name
=
'
POLICY
_SIMPLE'
,
index
=
1
,
number
=
2
,
options
=
None
,
type
=
None
),
_descriptor
.
EnumValueDescriptor
(
name
=
'
MODE
_SCHEDULER'
,
index
=
2
,
number
=
3
,
name
=
'
POLICY
_SCHEDULER'
,
index
=
2
,
number
=
3
,
options
=
None
,
type
=
None
),
],
containing_type
=
None
,
options
=
None
,
serialized_start
=
14
1
,
serialized_end
=
2
03
,
serialized_start
=
14
7
,
serialized_end
=
2
17
,
)
_sym_db
.
RegisterEnumDescriptor
(
_TASK_
MODE
)
_sym_db
.
RegisterEnumDescriptor
(
_TASK_
POLICY
)
_TASK
=
_descriptor
.
Descriptor
(
...
...
@@ -80,7 +80,7 @@ _TASK = _descriptor.Descriptor(
is_extension
=
False
,
extension_scope
=
None
,
options
=
None
),
_descriptor
.
FieldDescriptor
(
name
=
'
mode'
,
full_name
=
'loomplan.Task.mode
'
,
index
=
3
,
name
=
'
policy'
,
full_name
=
'loomplan.Task.policy
'
,
index
=
3
,
number
=
4
,
type
=
14
,
cpp_type
=
8
,
label
=
1
,
has_default_value
=
True
,
default_value
=
1
,
message_type
=
None
,
enum_type
=
None
,
containing_type
=
None
,
...
...
@@ -91,7 +91,7 @@ _TASK = _descriptor.Descriptor(
],
nested_types
=
[],
enum_types
=
[
_TASK_
MODE
,
_TASK_
POLICY
,
],
options
=
None
,
is_extendable
=
False
,
...
...
@@ -99,7 +99,7 @@ _TASK = _descriptor.Descriptor(
oneofs
=
[
],
serialized_start
=
29
,
serialized_end
=
2
03
,
serialized_end
=
2
17
,
)
...
...
@@ -135,12 +135,12 @@ _PLAN = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
2
05
,
serialized_end
=
2
62
,
serialized_start
=
2
19
,
serialized_end
=
2
76
,
)
_TASK
.
fields_by_name
[
'
mode'
].
enum_type
=
_TASK_MODE
_TASK_
MODE
.
containing_type
=
_TASK
_TASK
.
fields_by_name
[
'
policy'
].
enum_type
=
_TASK_POLICY
_TASK_
POLICY
.
containing_type
=
_TASK
_PLAN
.
fields_by_name
[
'tasks'
].
message_type
=
_TASK
DESCRIPTOR
.
message_types_by_name
[
'Task'
]
=
_TASK
DESCRIPTOR
.
message_types_by_name
[
'Plan'
]
=
_PLAN
...
...
src/client/plan.py
View file @
ef148a8d
...
...
@@ -6,9 +6,9 @@ import gv
import
struct
MODE_STANDARD
=
loomplan_pb2
.
Task
.
MODE
_STANDARD
MODE_SIMPLE
=
loomplan_pb2
.
Task
.
MODE
_SIMPLE
MODE_SCHEDULER
=
loomplan_pb2
.
Task
.
MODE
_SCHEDULER
POLICY_STANDARD
=
loomplan_pb2
.
Task
.
POLICY
_STANDARD
POLICY_SIMPLE
=
loomplan_pb2
.
Task
.
POLICY
_SIMPLE
POLICY_SCHEDULER
=
loomplan_pb2
.
Task
.
POLICY
_SCHEDULER
class
Task
(
object
):
...
...
@@ -16,13 +16,13 @@ class Task(object):
inputs
=
()
id
=
None
config
=
""
mode
=
MODE
_STANDARD
policy
=
POLICY
_STANDARD
def
set_message
(
self
,
msg
,
symbols
):
msg
.
config
=
self
.
config
msg
.
task_type
=
symbols
[
self
.
task_type
]
msg
.
input_ids
.
extend
(
t
.
id
for
t
in
self
.
inputs
)
msg
.
mode
=
self
.
mode
msg
.
policy
=
self
.
policy
class
Plan
(
object
):
...
...
@@ -61,14 +61,14 @@ class Plan(object):
def
task_dslice
(
self
,
input
):
task
=
Task
()
task
.
task_type
=
self
.
TASK_SCHEDULER_DSLICE
task
.
mode
=
MODE
_SCHEDULER
task
.
policy
=
POLICY
_SCHEDULER
task
.
inputs
=
(
input
,)
return
self
.
add
(
task
)
def
task_dget
(
self
,
input
):
task
=
Task
()
task
.
task_type
=
self
.
TASK_SCHEDULER_DGET
task
.
mode
=
MODE
_SCHEDULER
task
.
policy
=
POLICY
_SCHEDULER
task
.
inputs
=
(
input
,)
return
self
.
add
(
task
)
...
...
@@ -76,28 +76,28 @@ class Plan(object):
task
=
Task
()
task
.
task_type
=
self
.
TASK_DATA_CONST
task
.
config
=
data
task
.
mode
=
MODE
_SIMPLE
task
.
policy
=
POLICY
_SIMPLE
return
self
.
add
(
task
)
def
task_merge
(
self
,
inputs
):
task
=
Task
()
task
.
task_type
=
self
.
TASK_DATA_MERGE
task
.
inputs
=
inputs
task
.
mode
=
MODE
_SIMPLE
task
.
policy
=
POLICY
_SIMPLE
return
self
.
add
(
task
)
def
task_open
(
self
,
filename
):
task
=
Task
()
task
.
task_type
=
self
.
TASK_DATA_OPEN
task
.
config
=
filename
task
.
mode
=
MODE
_SIMPLE
task
.
policy
=
POLICY
_SIMPLE
return
self
.
add
(
task
)
def
task_split
(
self
,
input
,
char
=
None
):
task
=
Task
()
task
.
task_type
=
self
.
TASK_DATA_SPLIT
task
.
inputs
=
(
input
,)
task
.
mode
=
MODE
_SIMPLE
task
.
policy
=
POLICY
_SIMPLE
return
self
.
add
(
task
)
def
task_run
(
self
,
args
,
inputs
=
(),
outputs
=
(
None
,),
stdin
=
None
):
...
...
@@ -125,21 +125,21 @@ class Plan(object):
task
=
Task
()
task
.
task_type
=
self
.
TASK_ARRAY_MAKE
task
.
inputs
=
inputs
task
.
mode
=
MODE
_SIMPLE
task
.
policy
=
POLICY
_SIMPLE
return
self
.
add
(
task
)
def
task_size
(
self
,
input
):
task
=
Task
()
task
.
task_type
=
self
.
TASK_BASE_SIZE
task
.
inputs
=
(
input
,)
task
.
mode
=
MODE
_SIMPLE
task
.
policy
=
POLICY
_SIMPLE
return
self
.
add
(
task
)
def
task_length
(
self
,
input
):
task
=
Task
()
task
.
task_type
=
self
.
TASK_BASE_LENGTH
task
.
inputs
=
(
input
,)
task
.
mode
=
MODE
_SIMPLE
task
.
policy
=
POLICY
_SIMPLE
return
self
.
add
(
task
)
def
task_get
(
self
,
input
,
index
):
...
...
@@ -147,7 +147,7 @@ class Plan(object):
task
.
task_type
=
self
.
TASK_BASE_GET
task
.
inputs
=
(
input
,)
task
.
config
=
self
.
u64
.
pack
(
index
)
task
.
mode
=
MODE
_SIMPLE
task
.
policy
=
POLICY
_SIMPLE
return
self
.
add
(
task
)
def
task_slice
(
self
,
input
,
start
,
end
):
...
...
@@ -155,7 +155,7 @@ class Plan(object):
task
.
task_type
=
self
.
TASK_BASE_SLICE
task
.
inputs
=
(
input
,)
task
.
config
=
self
.
u64u64
.
pack
(
start
,
end
)
task
.
mode
=
MODE
_SIMPLE
task
.
policy
=
POLICY
_SIMPLE
return
self
.
add
(
task
)
def
create_message
(
self
,
symbols
):
...
...
src/libloom/loomplan.pb.cc
View file @
ef148a8d
...
...
@@ -56,7 +56,7 @@ struct StaticDescriptorInitializer_loomplan_2eproto {
// ===================================================================
bool
Task_
Mode
_IsValid
(
int
value
)
{
bool
Task_
Policy
_IsValid
(
int
value
)
{
switch
(
value
)
{
case
1
:
case
2
:
...
...
@@ -68,18 +68,18 @@ bool Task_Mode_IsValid(int value) {
}
#ifndef _MSC_VER
const
Task_
Mode
Task
::
MODE
_STANDARD
;
const
Task_
Mode
Task
::
MODE
_SIMPLE
;
const
Task_
Mode
Task
::
MODE
_SCHEDULER
;
const
Task_
Mode
Task
::
Mode
_MIN
;
const
Task_
Mode
Task
::
Mode
_MAX
;
const
int
Task
::
Mode
_ARRAYSIZE
;
const
Task_
Policy
Task
::
POLICY
_STANDARD
;
const
Task_
Policy
Task
::
POLICY
_SIMPLE
;
const
Task_
Policy
Task
::
POLICY
_SCHEDULER
;
const
Task_
Policy
Task
::
Policy
_MIN
;
const
Task_
Policy
Task
::
Policy
_MAX
;
const
int
Task
::
Policy
_ARRAYSIZE
;
#endif // _MSC_VER
#ifndef _MSC_VER
const
int
Task
::
kTaskTypeFieldNumber
;
const
int
Task
::
kConfigFieldNumber
;
const
int
Task
::
kInputIdsFieldNumber
;
const
int
Task
::
k
Mode
FieldNumber
;
const
int
Task
::
k
Policy
FieldNumber
;
#endif // !_MSC_VER
Task
::
Task
()
...
...
@@ -103,7 +103,7 @@ void Task::SharedCtor() {
_cached_size_
=
0
;
task_type_
=
0
;
config_
=
const_cast
<
::
std
::
string
*>
(
&::
google
::
protobuf
::
internal
::
GetEmptyStringAlreadyInited
());
mode
_
=
1
;
policy
_
=
1
;
::
memset
(
_has_bits_
,
0
,
sizeof
(
_has_bits_
));
}
...
...
@@ -152,7 +152,7 @@ void Task::Clear() {
config_
->
clear
();
}
}
mode
_
=
1
;
policy
_
=
1
;
}
input_ids_
.
Clear
();
::
memset
(
_has_bits_
,
0
,
sizeof
(
_has_bits_
));
...
...
@@ -215,20 +215,20 @@ bool Task::MergePartialFromCodedStream(
goto
handle_unusual
;
}
if
(
input
->
ExpectTag
(
24
))
goto
parse_input_ids
;
if
(
input
->
ExpectTag
(
32
))
goto
parse_
mode
;
if
(
input
->
ExpectTag
(
32
))
goto
parse_
policy
;
break
;
}
// optional .loomplan.Task.
Mode mode = 4 [default = MODE
_STANDARD];
// optional .loomplan.Task.
Policy policy = 4 [default = POLICY
_STANDARD];
case
4
:
{
if
(
tag
==
32
)
{
parse_
mode
:
parse_
policy
:
int
value
;
DO_
((
::
google
::
protobuf
::
internal
::
WireFormatLite
::
ReadPrimitive
<
int
,
::
google
::
protobuf
::
internal
::
WireFormatLite
::
TYPE_ENUM
>
(
input
,
&
value
)));
if
(
::
loomplan
::
Task_
Mode
_IsValid
(
value
))
{
set_
mode
(
static_cast
<
::
loomplan
::
Task_Mode
>
(
value
));
if
(
::
loomplan
::
Task_
Policy
_IsValid
(
value
))
{
set_
policy
(
static_cast
<
::
loomplan
::
Task_Policy
>
(
value
));
}
else
{
unknown_fields_stream
.
WriteVarint32
(
tag
);
unknown_fields_stream
.
WriteVarint32
(
value
);
...
...
@@ -282,10 +282,10 @@ void Task::SerializeWithCachedSizes(
3
,
this
->
input_ids
(
i
),
output
);
}
// optional .loomplan.Task.
Mode mode = 4 [default = MODE
_STANDARD];
if
(
has_
mode
())
{
// optional .loomplan.Task.
Policy policy = 4 [default = POLICY
_STANDARD];
if
(
has_
policy
())
{
::
google
::
protobuf
::
internal
::
WireFormatLite
::
WriteEnum
(
4
,
this
->
mode
(),
output
);
4
,
this
->
policy
(),
output
);
}
output
->
WriteRaw
(
unknown_fields
().
data
(),
...
...
@@ -311,10 +311,10 @@ int Task::ByteSize() const {
this
->
config
());
}
// optional .loomplan.Task.
Mode mode = 4 [default = MODE
_STANDARD];
if
(
has_
mode
())
{
// optional .loomplan.Task.
Policy policy = 4 [default = POLICY
_STANDARD];
if
(
has_
policy
())
{
total_size
+=
1
+
::
google
::
protobuf
::
internal
::
WireFormatLite
::
EnumSize
(
this
->
mode
());
::
google
::
protobuf
::
internal
::
WireFormatLite
::
EnumSize
(
this
->
policy
());
}
}
...
...
@@ -351,8 +351,8 @@ void Task::MergeFrom(const Task& from) {
if
(
from
.
has_config
())
{
set_config
(
from
.
config
());
}
if
(
from
.
has_
mode
())
{
set_
mode
(
from
.
mode
());
if
(
from
.
has_
policy
())
{
set_
policy
(
from
.
policy
());
}
}
mutable_unknown_fields
()
->
append
(
from
.
unknown_fields
());
...
...
@@ -375,7 +375,7 @@ void Task::Swap(Task* other) {
std
::
swap
(
task_type_
,
other
->
task_type_
);
std
::
swap
(
config_
,
other
->
config_
);
input_ids_
.
Swap
(
&
other
->
input_ids_
);
std
::
swap
(
mode_
,
other
->
mode
_
);
std
::
swap
(
policy_
,
other
->
policy
_
);
std
::
swap
(
_has_bits_
[
0
],
other
->
_has_bits_
[
0
]);
_unknown_fields_
.
swap
(
other
->
_unknown_fields_
);
std
::
swap
(
_cached_size_
,
other
->
_cached_size_
);
...
...
src/libloom/loomplan.pb.h
View file @
ef148a8d
...
...
@@ -35,15 +35,15 @@ void protobuf_ShutdownFile_loomplan_2eproto();
class
Task
;
class
Plan
;
enum
Task_
Mode
{
Task_
Mode_MODE
_STANDARD
=
1
,
Task_
Mode_MODE
_SIMPLE
=
2
,
Task_
Mode_MODE
_SCHEDULER
=
3
enum
Task_
Policy
{
Task_
Policy_POLICY
_STANDARD
=
1
,
Task_
Policy_POLICY
_SIMPLE
=
2
,
Task_
Policy_POLICY
_SCHEDULER
=
3
};
bool
Task_
Mode
_IsValid
(
int
value
);
const
Task_
Mode
Task_Mode_Mode_MIN
=
Task_Mode_MODE
_STANDARD
;
const
Task_
Mode
Task_Mode_Mode_MAX
=
Task_Mode_MODE
_SCHEDULER
;
const
int
Task_
Mode_Mode_ARRAYSIZE
=
Task_Mode_Mode
_MAX
+
1
;
bool
Task_
Policy
_IsValid
(
int
value
);
const
Task_
Policy
Task_Policy_Policy_MIN
=
Task_Policy_POLICY
_STANDARD
;
const
Task_
Policy
Task_Policy_Policy_MAX
=
Task_Policy_POLICY
_SCHEDULER
;
const
int
Task_
Policy_Policy_ARRAYSIZE
=
Task_Policy_Policy
_MAX
+
1
;
// ===================================================================
...
...
@@ -106,19 +106,19 @@ class Task : public ::google::protobuf::MessageLite {
// nested types ----------------------------------------------------
typedef
Task_
Mode
Mode
;
static
const
Mode
MODE_STANDARD
=
Task_Mode_MODE
_STANDARD
;
static
const
Mode
MODE_SIMPLE
=
Task_Mode_MODE
_SIMPLE
;
static
const
Mode
MODE_SCHEDULER
=
Task_Mode_MODE
_SCHEDULER
;
static
inline
bool
Mode
_IsValid
(
int
value
)
{
return
Task_
Mode
_IsValid
(
value
);
typedef
Task_
Policy
Policy
;
static
const
Policy
POLICY_STANDARD
=
Task_Policy_POLICY
_STANDARD
;
static
const
Policy
POLICY_SIMPLE
=
Task_Policy_POLICY
_SIMPLE
;
static
const
Policy
POLICY_SCHEDULER
=
Task_Policy_POLICY
_SCHEDULER
;
static
inline
bool
Policy
_IsValid
(
int
value
)
{
return
Task_
Policy
_IsValid
(
value
);
}
static
const
Mode
Mode
_MIN
=
Task_
Mode_Mode
_MIN
;
static
const
Mode
Mode
_MAX
=
Task_
Mode_Mode
_MAX
;
static
const
int
Mode
_ARRAYSIZE
=
Task_
Mode_Mode
_ARRAYSIZE
;
static
const
Policy
Policy
_MIN
=
Task_
Policy_Policy
_MIN
;
static
const
Policy
Policy
_MAX
=
Task_
Policy_Policy
_MAX
;
static
const
int
Policy
_ARRAYSIZE
=
Task_
Policy_Policy
_ARRAYSIZE
;
// accessors -------------------------------------------------------
...
...
@@ -153,12 +153,12 @@ class Task : public ::google::protobuf::MessageLite {
inline
::
google
::
protobuf
::
RepeatedField
<
::
google
::
protobuf
::
int32
>*
mutable_input_ids
();
// optional .loomplan.Task.
Mode mode = 4 [default = MODE
_STANDARD];
inline
bool
has_
mode
()
const
;
inline
void
clear_
mode
();
static
const
int
k
Mode
FieldNumber
=
4
;
inline
::
loomplan
::
Task_
Mode
mode
()
const
;
inline
void
set_
mode
(
::
loomplan
::
Task_Mode
value
);
// optional .loomplan.Task.
Policy policy = 4 [default = POLICY
_STANDARD];
inline
bool
has_
policy
()
const
;
inline
void
clear_
policy
();
static
const
int
k
Policy
FieldNumber
=
4
;
inline
::
loomplan
::
Task_
Policy
policy
()
const
;
inline
void
set_
policy
(
::
loomplan
::
Task_Policy
value
);
// @@protoc_insertion_point(class_scope:loomplan.Task)
private:
...
...
@@ -166,8 +166,8 @@ class Task : public ::google::protobuf::MessageLite {
inline
void
clear_has_task_type
();
inline
void
set_has_config
();
inline
void
clear_has_config
();
inline
void
set_has_
mode
();
inline
void
clear_has_
mode
();
inline
void
set_has_
policy
();
inline
void
clear_has_
policy
();
::
std
::
string
_unknown_fields_
;
...
...
@@ -175,7 +175,7 @@ class Task : public ::google::protobuf::MessageLite {
mutable
int
_cached_size_
;
::
std
::
string
*
config_
;
::
google
::
protobuf
::
int32
task_type_
;
int
mode
_
;
int
policy
_
;
::
google
::
protobuf
::
RepeatedField
<
::
google
::
protobuf
::
int32
>
input_ids_
;
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
friend
void
protobuf_AddDesc_loomplan_2eproto_impl
();
...
...
@@ -432,29 +432,29 @@ Task::mutable_input_ids() {
return
&
input_ids_
;
}
// optional .loomplan.Task.
Mode mode = 4 [default = MODE
_STANDARD];
inline
bool
Task
::
has_
mode
()
const
{
// optional .loomplan.Task.
Policy policy = 4 [default = POLICY
_STANDARD];
inline
bool
Task
::
has_
policy
()
const
{
return
(
_has_bits_
[
0
]
&
0x00000008u
)
!=
0
;
}
inline
void
Task
::
set_has_
mode
()
{
inline
void
Task
::
set_has_
policy
()
{
_has_bits_
[
0
]
|=
0x00000008u
;
}
inline
void
Task
::
clear_has_
mode
()
{
inline
void
Task
::
clear_has_
policy
()
{
_has_bits_
[
0
]
&=
~
0x00000008u
;
}
inline
void
Task
::
clear_
mode
()
{
mode
_
=
1
;
clear_has_
mode
();
inline
void
Task
::
clear_
policy
()
{
policy
_
=
1
;
clear_has_
policy
();
}
inline
::
loomplan
::
Task_
Mode
Task
::
mode
()
const
{
// @@protoc_insertion_point(field_get:loomplan.Task.
mode
)
return
static_cast
<
::
loomplan
::
Task_
Mode
>
(
mode
_
);
inline
::
loomplan
::
Task_
Policy
Task
::
policy
()
const
{
// @@protoc_insertion_point(field_get:loomplan.Task.
policy
)
return
static_cast
<
::
loomplan
::
Task_
Policy
>
(
policy
_
);
}
inline
void
Task
::
set_
mode
(
::
loomplan
::
Task_Mode
value
)
{
assert
(
::
loomplan
::
Task_
Mode
_IsValid
(
value
));
set_has_
mode
();
mode
_
=
value
;
// @@protoc_insertion_point(field_set:loomplan.Task.
mode
)
inline
void
Task
::
set_
policy
(
::
loomplan
::
Task_Policy
value
)
{
assert
(
::
loomplan
::
Task_
Policy
_IsValid
(
value
));
set_has_
policy
();
policy
_
=
value
;
// @@protoc_insertion_point(field_set:loomplan.Task.
policy
)
}
// -------------------------------------------------------------------
...
...
src/proto/loomplan.proto
View file @
ef148a8d
...
...
@@ -3,16 +3,16 @@ package loomplan;
option
optimize_for
=
LITE_RUNTIME
;
message
Task
{
enum
Mode
{
MODE
_STANDARD
=
1
;
MODE
_SIMPLE
=
2
;
MODE
_SCHEDULER
=
3
;
enum
Policy
{
POLICY
_STANDARD
=
1
;
POLICY
_SIMPLE
=
2
;
POLICY
_SCHEDULER
=
3
;
}
required
int32
task_type
=
1
;
required
bytes
config
=
2
;
repeated
int32
input_ids
=
3
;
optional
Mode
mode
=
4
[
default
=
MODE
_STANDARD
];
optional
Policy
policy
=
4
[
default
=
POLICY
_STANDARD
];
}
message
Plan
{
...
...
src/server/taskmanager.cpp
View file @
ef148a8d
...
...
@@ -21,16 +21,16 @@ TaskManager::TaskManager(Server &server)
}
static
TaskNode
::
TaskMode
read_task_mode
(
loomplan
::
Task_Mode
mode
)
{
switch
(
mode
)
{
case
loomplan
::
Task_
Mode_MODE
_STANDARD
:
return
TaskNode
::
MODE
_STANDARD
;
case
loomplan
::
Task_
Mode_MODE
_SIMPLE
:
return
TaskNode
::
MODE
_SIMPLE
;
case
loomplan
::
Task_
Mode_MODE
_SCHEDULER
:
return
TaskNode
::
MODE
_SCHEDULER
;
static
TaskNode
::
Policy
read_task_policy
(
loomplan
::
Task_Policy
policy
)
{
switch
(
policy
)
{
case
loomplan
::
Task_
Policy_POLICY
_STANDARD
:
return
TaskNode
::
POLICY
_STANDARD
;
case
loomplan
::
Task_
Policy_POLICY
_SIMPLE
:
return
TaskNode
::
POLICY
_SIMPLE
;
case
loomplan
::
Task_
Policy_POLICY
_SCHEDULER
:
return
TaskNode
::
POLICY
_SCHEDULER
;
default:
llog
->
critical
(
"Invalid task
mode
"
);
llog
->
critical
(
"Invalid task
policy
"
);
exit
(
1
);
}
}
...
...
@@ -43,7 +43,7 @@ void TaskManager::add_plan(const loomplan::Plan &plan, bool distribute)
const
auto
&
pt
=
plan
.
tasks
(
i
);
auto
id
=
i
+
id_base
;
tasks
[
id
]
=
std
::
make_unique
<
TaskNode
>
(
id
,
i
,
read_task_
mode
(
pt
.
mode
()),
pt
.
task_type
(),
pt
.
config
());
id
,
i
,
read_task_
policy
(
pt
.
policy
()),
pt
.
task_type
(),
pt
.
config
());
}
std
::
vector
<
TaskNode
*>
ready_tasks
;
...
...
@@ -126,19 +126,19 @@ void TaskManager::on_task_finished(TaskNode &task)
std
::
vector
<
TaskNode
*>
ready
;
task
.
collect_ready_nexts
(
ready
);
bool
scheduler_
mode
=
false
;
bool
scheduler_
policy
=
false
;
for
(
TaskNode
*
node
:
ready
)
{
if
(
node
->
get_
mode
()
==
TaskNode
::
MODE
_SCHEDULER
)
{
scheduler_
mode
=
true
;
if
(
node
->
get_
policy
()
==
TaskNode
::
POLICY
_SCHEDULER
)
{
scheduler_
policy
=
true
;
break
;
}
}
if
(
scheduler_
mode
)
{
if
(
scheduler_
policy
)
{
std
::
vector
<
TaskNode
*>
new_ready
;
for
(
TaskNode
*
node
:
ready
)
{
if
(
node
->
get_
mode
()
==
TaskNode
::
MODE
_SCHEDULER
)
{
expand_scheduler_
mode_
task
(
node
,
new_ready
);
if
(
node
->
get_
policy
()
==
TaskNode
::
POLICY
_SCHEDULER
)
{
expand_scheduler_task
(
node
,
new_ready
);
}
else
{
new_ready
.
push_back
(
node
);
}
...
...
@@ -149,7 +149,7 @@ void TaskManager::on_task_finished(TaskNode &task)
distribute_work
(
ready
);
}
void
TaskManager
::
expand_scheduler_
mode_
task
(
TaskNode
*
node
,
TaskNode
::
Vector
&
tasks
)
void
TaskManager
::
expand_scheduler_task
(
TaskNode
*
node
,
TaskNode
::
Vector
&
tasks
)
{
assert
(
node
->
get_inputs
().
size
()
==
1
);
// Todo generalize
TaskNode
*
input
=
node
->
get_inputs
()[
0
];
...
...
@@ -251,12 +251,12 @@ void TaskManager::dynamic_expand_helper(
TaskNode
::
Vector
&
tasks2
)
{
Id
new_id
=
server
.
new_id
(
2
);
auto
new_slice
=
std
::
make_unique
<
TaskNode
>
(
new_id
,
-
1
,
TaskNode
::
MODE
_SIMPLE
,
task_type_id
,
config
);
auto
new_slice
=
std
::
make_unique
<
TaskNode
>
(
new_id
,
-
1
,
TaskNode
::
POLICY
_SIMPLE
,
task_type_id
,
config
);
new_slice
->
set_inputs
(
inputs
);
tasks1
.
push_back
(
new_slice
.
get
());
auto
new_task
=
std
::
make_unique
<
TaskNode
>
(
new_id
+
1
,
-
1
,
next
->
get_
mode
(),
next
->
get_task_type
(),
next
->
get_config
());
new_id
+
1
,
-
1
,
next
->
get_
policy
(),
next
->
get_task_type
(),
next
->
get_config
());
new_task
->
add_input
(
new_slice
.
get
());
new_slice
->
inc_ref_counter
();
tasks2
.
push_back
(
new_slice
.
get
());
...
...
src/server/taskmanager.h
View file @
ef148a8d
...
...
@@ -58,7 +58,7 @@ private:
void
distribute_work
(
TaskNode
::
Vector
&
tasks
);
void
expand_scheduler_
mode_
task
(
TaskNode
*
node
,
TaskNode
::
Vector
&
tasks
);
void
expand_scheduler_task
(
TaskNode
*
node
,
TaskNode
::
Vector
&
tasks
);
void
expand_dslice
(
TaskNode
*
node
,
TaskNode
::
Vector
&
tasks
,
size_t
length
,
TaskNode
*
next
);
void
expand_dget
(
TaskNode
*
node
,
TaskNode
::
Vector
&
tasks
,
size_t
length
,
TaskNode
*
next
);
void
dynamic_expand_helper
(
...
...
src/server/tasknode.h
View file @
ef148a8d
...
...
@@ -23,14 +23,14 @@ public:
FINISHED
};
enum
TaskMode
{
MODE
_STANDARD
,
MODE
_SIMPLE
,
MODE
_SCHEDULER
enum
Policy
{
POLICY
_STANDARD
,
POLICY
_SIMPLE
,
POLICY
_SCHEDULER
};
TaskNode
(
loom
::
Id
id
,
loom
::
Id
client_id
,
TaskMode
mode
,
int
task_type
,
const
std
::
string
&
config
)
:
state
(
WAITING
),
id
(
id
),
mode
(
mode
),
ref_count
(
0
),
task_type
(
task_type
),
TaskNode
(
loom
::
Id
id
,
loom
::
Id
client_id
,
Policy
policy
,
int
task_type
,
const
std
::
string
&
config
)
:
state
(
WAITING
),
id
(
id
),
policy
(
policy
),
ref_count
(
0
),
task_type
(
task_type
),
config
(
config
),
size
(
0
),
length
(
0
),
client_id
(
client_id
)
{}
...
...
@@ -78,8 +78,8 @@ public:
return
ref_count
;
}
TaskMode
get_mode
()
const
{
return
mode
;
Policy
get_policy
()
const
{
return
policy
;
}
void
set_state
(
State
state
)
{
...
...
@@ -146,7 +146,7 @@ public:
private:
State
state
;
loom
::
Id
id
;
TaskMode
mode
;
Policy
policy
;
int
ref_count
;
loom
::
TaskId
task_type
;
Vector
inputs
;
...
...
Write
Preview