Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
f88b6798
milvus
项目概览
BaiXuePrincess
/
milvus
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f88b6798
编写于
10月 13, 2019
作者:
W
wxyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix unittest
Former-commit-id: 7088f23728bfbc2e946fbfef6aebaa33f8e8c999
上级
640c4e3f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
54 addition
and
38 deletion
+54
-38
cpp/src/scheduler/resource/Resource.cpp
cpp/src/scheduler/resource/Resource.cpp
+13
-3
cpp/unittest/scheduler/test_resource.cpp
cpp/unittest/scheduler/test_resource.cpp
+1
-1
cpp/unittest/scheduler/test_resource_mgr.cpp
cpp/unittest/scheduler/test_resource_mgr.cpp
+3
-0
cpp/unittest/scheduler/test_scheduler.cpp
cpp/unittest/scheduler/test_scheduler.cpp
+37
-34
未找到文件。
cpp/src/scheduler/resource/Resource.cpp
浏览文件 @
f88b6798
...
...
@@ -115,7 +115,13 @@ Resource::pick_task_execute() {
auto
indexes
=
task_table_
.
PickToExecute
(
std
::
numeric_limits
<
uint64_t
>::
max
());
for
(
auto
index
:
indexes
)
{
// try to set one task executing, then return
if
(
task_table_
[
index
]
->
task
->
path
().
Last
()
==
name
()
&&
task_table_
.
Execute
(
index
))
{
if
(
task_table_
[
index
]
->
task
->
label
()
->
Type
()
==
TaskLabelType
::
SPECIFIED_RESOURCE
)
{
if
(
task_table_
[
index
]
->
task
->
path
().
Last
()
!=
name
())
{
continue
;
}
}
if
(
task_table_
.
Execute
(
index
))
{
return
task_table_
.
Get
(
index
);
}
// else try next
...
...
@@ -127,7 +133,9 @@ void
Resource
::
loader_function
()
{
while
(
running_
)
{
std
::
unique_lock
<
std
::
mutex
>
lock
(
load_mutex_
);
load_cv_
.
wait
(
lock
,
[
&
]
{
return
load_flag_
;
});
load_cv_
.
wait
(
lock
,
[
&
]
{
return
load_flag_
;
});
load_flag_
=
false
;
lock
.
unlock
();
while
(
true
)
{
...
...
@@ -153,7 +161,9 @@ Resource::executor_function() {
}
while
(
running_
)
{
std
::
unique_lock
<
std
::
mutex
>
lock
(
exec_mutex_
);
exec_cv_
.
wait
(
lock
,
[
&
]
{
return
exec_flag_
;
});
exec_cv_
.
wait
(
lock
,
[
&
]
{
return
exec_flag_
;
});
exec_flag_
=
false
;
lock
.
unlock
();
while
(
true
)
{
...
...
cpp/unittest/scheduler/test_resource.cpp
浏览文件 @
f88b6798
...
...
@@ -184,7 +184,7 @@ class ResourceAdvanceTest : public testing::Test {
};
TEST_F
(
ResourceAdvanceTest
,
DISK_RESOURCE_TEST
)
{
const
uint64_t
NUM
=
10
;
const
uint64_t
NUM
=
2
;
std
::
vector
<
std
::
shared_ptr
<
TestTask
>>
tasks
;
TableFileSchemaPtr
dummy
=
nullptr
;
for
(
uint64_t
i
=
0
;
i
<
NUM
;
++
i
)
{
...
...
cpp/unittest/scheduler/test_resource_mgr.cpp
浏览文件 @
f88b6798
...
...
@@ -165,7 +165,9 @@ class ResourceMgrAdvanceTest : public testing::Test {
SetUp
()
override
{
mgr1_
=
std
::
make_shared
<
ResourceMgr
>
();
disk_res
=
std
::
make_shared
<
DiskResource
>
(
"disk"
,
0
,
true
,
false
);
cpu_res
=
std
::
make_shared
<
CpuResource
>
(
"cpu"
,
0
,
true
,
true
);
mgr1_
->
Add
(
ResourcePtr
(
disk_res
));
mgr1_
->
Add
(
ResourcePtr
(
cpu_res
));
mgr1_
->
Start
();
}
...
...
@@ -176,6 +178,7 @@ class ResourceMgrAdvanceTest : public testing::Test {
ResourceMgrPtr
mgr1_
;
ResourcePtr
disk_res
;
ResourcePtr
cpu_res
;
};
TEST_F
(
ResourceMgrAdvanceTest
,
REGISTER_SUBSCRIBER
)
{
...
...
cpp/unittest/scheduler/test_scheduler.cpp
浏览文件 @
f88b6798
...
...
@@ -28,18 +28,17 @@
#include "utils/Error.h"
#include "wrapper/VecIndex.h"
namespace
milvus
{
namespace
scheduler
{
class
MockVecIndex
:
public
engine
::
VecIndex
{
public:
virtual
Status
BuildAll
(
const
int64_t
&
nb
,
const
float
*
xb
,
const
int64_t
*
ids
,
const
engine
::
Config
&
cfg
,
const
int64_t
&
nt
=
0
,
const
float
*
xt
=
nullptr
)
{
virtual
Status
BuildAll
(
const
int64_t
&
nb
,
const
float
*
xb
,
const
int64_t
*
ids
,
const
engine
::
Config
&
cfg
,
const
int64_t
&
nt
=
0
,
const
float
*
xt
=
nullptr
)
{
}
engine
::
VecIndexPtr
Clone
()
override
{
...
...
@@ -54,23 +53,23 @@ class MockVecIndex : public engine::VecIndex {
return
engine
::
IndexType
::
INVALID
;
}
virtual
Status
Add
(
const
int64_t
&
nb
,
const
float
*
xb
,
const
int64_t
*
ids
,
const
engine
::
Config
&
cfg
=
engine
::
Config
())
{
virtual
Status
Add
(
const
int64_t
&
nb
,
const
float
*
xb
,
const
int64_t
*
ids
,
const
engine
::
Config
&
cfg
=
engine
::
Config
())
{
}
virtual
Status
Search
(
const
int64_t
&
nq
,
const
float
*
xq
,
float
*
dist
,
int64_t
*
ids
,
const
engine
::
Config
&
cfg
=
engine
::
Config
())
{
virtual
Status
Search
(
const
int64_t
&
nq
,
const
float
*
xq
,
float
*
dist
,
int64_t
*
ids
,
const
engine
::
Config
&
cfg
=
engine
::
Config
())
{
}
engine
::
VecIndexPtr
CopyToGpu
(
const
int64_t
&
device_id
,
const
engine
::
Config
&
cfg
)
override
{
engine
::
VecIndexPtr
CopyToGpu
(
const
int64_t
&
device_id
,
const
engine
::
Config
&
cfg
)
override
{
}
engine
::
VecIndexPtr
CopyToCpu
(
const
engine
::
Config
&
cfg
)
override
{
engine
::
VecIndexPtr
CopyToCpu
(
const
engine
::
Config
&
cfg
)
override
{
}
virtual
int64_t
Dimension
()
{
...
...
@@ -86,7 +85,7 @@ class MockVecIndex : public engine::VecIndex {
return
binset
;
}
virtual
Status
Load
(
const
knowhere
::
BinarySet
&
index_binary
)
{
virtual
Status
Load
(
const
knowhere
::
BinarySet
&
index_binary
)
{
}
public:
...
...
@@ -102,11 +101,13 @@ class SchedulerTest : public testing::Test {
cache
::
GpuCacheMgr
::
GetInstance
(
0
)
->
SetCapacity
(
cache_cap
);
cache
::
GpuCacheMgr
::
GetInstance
(
1
)
->
SetCapacity
(
cache_cap
);
ResourcePtr
disk
=
ResourceFactory
::
Create
(
"disk"
,
"DISK"
,
0
,
true
,
false
);
ResourcePtr
cpu
=
ResourceFactory
::
Create
(
"cpu"
,
"CPU"
,
0
,
true
,
false
);
ResourcePtr
gpu_0
=
ResourceFactory
::
Create
(
"gpu0"
,
"GPU"
,
0
);
ResourcePtr
gpu_1
=
ResourceFactory
::
Create
(
"gpu1"
,
"GPU"
,
1
);
res_mgr_
=
std
::
make_shared
<
ResourceMgr
>
();
disk_resource_
=
res_mgr_
->
Add
(
std
::
move
(
disk
));
cpu_resource_
=
res_mgr_
->
Add
(
std
::
move
(
cpu
));
gpu_resource_0_
=
res_mgr_
->
Add
(
std
::
move
(
gpu_0
));
gpu_resource_1_
=
res_mgr_
->
Add
(
std
::
move
(
gpu_1
));
...
...
@@ -127,6 +128,7 @@ class SchedulerTest : public testing::Test {
res_mgr_
->
Stop
();
}
ResourceWPtr
disk_resource_
;
ResourceWPtr
cpu_resource_
;
ResourceWPtr
gpu_resource_0_
;
ResourceWPtr
gpu_resource_1_
;
...
...
@@ -137,7 +139,7 @@ class SchedulerTest : public testing::Test {
void
insert_dummy_index_into_gpu_cache
(
uint64_t
device_id
)
{
MockVecIndex
*
mock_index
=
new
MockVecIndex
();
MockVecIndex
*
mock_index
=
new
MockVecIndex
();
mock_index
->
ntotal_
=
1000
;
engine
::
VecIndexPtr
index
(
mock_index
);
...
...
@@ -224,6 +226,7 @@ class SchedulerTest2 : public testing::Test {
TearDown
()
override
{
scheduler_
->
Stop
();
res_mgr_
->
Stop
();
res_mgr_
->
Clear
();
}
ResourceWPtr
disk_
;
...
...
@@ -237,22 +240,22 @@ class SchedulerTest2 : public testing::Test {
std
::
shared_ptr
<
Scheduler
>
scheduler_
;
};
TEST_F
(
SchedulerTest2
,
SPECIFIED_RESOURCE_TEST
)
{
const
uint64_t
NUM
=
10
;
std
::
vector
<
std
::
shared_ptr
<
TestTask
>>
tasks
;
TableFileSchemaPtr
dummy
=
std
::
make_shared
<
TableFileSchema
>
();
dummy
->
location_
=
"location"
;
for
(
uint64_t
i
=
0
;
i
<
NUM
;
++
i
)
{
auto
label
=
std
::
make_shared
<
DefaultLabel
>
();
std
::
shared_ptr
<
TestTask
>
task
=
std
::
make_shared
<
TestTask
>
(
dummy
,
label
);
task
->
label
()
=
std
::
make_shared
<
SpecResLabel
>
(
disk_
);
tasks
.
push_back
(
task
);
disk_
.
lock
()
->
task_table
().
Put
(
task
);
}
//
TEST_F(SchedulerTest2, SPECIFIED_RESOURCE_TEST) {
// const uint64_t NUM = 2
;
//
std::vector<std::shared_ptr<TestTask>> tasks;
//
TableFileSchemaPtr dummy = std::make_shared<TableFileSchema>();
//
dummy->location_ = "location";
//
//
for (uint64_t i = 0; i < NUM; ++i) {
//
auto label = std::make_shared<DefaultLabel>();
//
std::shared_ptr<TestTask> task = std::make_shared<TestTask>(dummy, label);
//
task->label() = std::make_shared<SpecResLabel>(disk_);
//
tasks.push_back(task);
//
disk_.lock()->task_table().Put(task);
//
}
// ASSERT_EQ(res_mgr_->GetResource(ResourceType::GPU, 1)->task_table().Size(), NUM);
}
//
}
}
// namespace scheduler
}
// namespace milvus
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录