Merge pull request 'updated ai scheduler pcm.api' (#103) from tzwang/pcm-coordinator:master into master
Former-commit-id: fbd8808431d2e291e8cb95e47f88bba1bed49783
This commit is contained in:
commit
bad375502f
|
@ -897,7 +897,7 @@ service pcm {
|
||||||
get /schedule/ai/getStrategies returns (AiStrategyResp)
|
get /schedule/ai/getStrategies returns (AiStrategyResp)
|
||||||
|
|
||||||
@handler ScheduleGetAlgorithmsHandler
|
@handler ScheduleGetAlgorithmsHandler
|
||||||
get /schedule/ai/getAlgorithms (AiAlgorithmsReq) returns (AiAlgorithmsResp)
|
get /schedule/ai/getAlgorithms/:resourceType/:taskType/:dataset (AiAlgorithmsReq) returns (AiAlgorithmsResp)
|
||||||
|
|
||||||
@handler ScheduleSubmitHandler
|
@handler ScheduleSubmitHandler
|
||||||
post /schedule/submit (ScheduleReq) returns (ScheduleResp)
|
post /schedule/submit (ScheduleReq) returns (ScheduleResp)
|
||||||
|
|
|
@ -55,9 +55,9 @@ type (
|
||||||
}
|
}
|
||||||
|
|
||||||
AiAlgorithmsReq {
|
AiAlgorithmsReq {
|
||||||
ResourceType string `json:"resourceType"`
|
ResourceType string `path:"resourceType"`
|
||||||
TaskType string `json:"taskType"`
|
TaskType string `path:"taskType"`
|
||||||
Dataset string `json:"dataset"`
|
Dataset string `path:"dataset"`
|
||||||
}
|
}
|
||||||
|
|
||||||
AiAlgorithmsResp {
|
AiAlgorithmsResp {
|
||||||
|
|
|
@ -23,6 +23,16 @@ func (s *AiStorage) GetParticipants() (*types.ClusterListResp, error) {
|
||||||
return &resp, nil
|
return &resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *AiStorage) GetClustersByAdapterId(id string) (*types.ClusterListResp, error) {
|
||||||
|
var resp types.ClusterListResp
|
||||||
|
tx := s.DbEngin.Raw("select * from t_cluster where `deleted_at` IS NULL and `adapter_id` = ? ORDER BY create_time Desc", id).Scan(&resp.List)
|
||||||
|
if tx.Error != nil {
|
||||||
|
logx.Errorf(tx.Error.Error())
|
||||||
|
return nil, tx.Error
|
||||||
|
}
|
||||||
|
return &resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *AiStorage) SaveTask(name string) error {
|
func (s *AiStorage) SaveTask(name string) error {
|
||||||
// 构建主任务结构体
|
// 构建主任务结构体
|
||||||
taskModel := models.Task{
|
taskModel := models.Task{
|
||||||
|
|
|
@ -2,12 +2,14 @@ package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
"gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
||||||
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/database"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/executor"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/executor"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/storeLink"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/storeLink"
|
||||||
"gitlink.org.cn/JointCloud/pcm-octopus/octopusclient"
|
"gitlink.org.cn/JointCloud/pcm-octopus/octopusclient"
|
||||||
"gitlink.org.cn/jcce-pcm/pcm-participant-modelarts/client/imagesservice"
|
"gitlink.org.cn/jcce-pcm/pcm-participant-modelarts/client/imagesservice"
|
||||||
"gitlink.org.cn/jcce-pcm/pcm-participant-modelarts/client/modelartsservice"
|
"gitlink.org.cn/jcce-pcm/pcm-participant-modelarts/client/modelartsservice"
|
||||||
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -16,34 +18,30 @@ const (
|
||||||
SHUGUANGAI = "shuguangAi"
|
SHUGUANGAI = "shuguangAi"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
func InitAiClusterMap(octopusRpc octopusclient.Octopus, modelArtsRpc modelartsservice.ModelArtsService, modelArtsImgRpc imagesservice.ImagesService, aCRpc hpcacclient.HpcAC, storages *database.AiStorage) (*map[string]executor.AiExecutor, *map[string]collector.AiCollector) {
|
||||||
AiTypeMap = map[string]string{
|
clusters, _ := storages.GetClustersByAdapterId("1777144940459986944")
|
||||||
"hanwuji": OCTOPUS,
|
|
||||||
//"suiyan": OCTOPUS,
|
|
||||||
//"sailingsi": OCTOPUS,
|
|
||||||
//"modelarts-CloudBrain2": MODELARTS,
|
|
||||||
"shuguangAi": SHUGUANGAI,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
func InitAiClusterMap(octopusRpc octopusclient.Octopus, modelArtsRpc modelartsservice.ModelArtsService, modelArtsImgRpc imagesservice.ImagesService, aCRpc hpcacclient.HpcAC) (*map[string]executor.AiExecutor, *map[string]collector.AiCollector) {
|
|
||||||
executorMap := make(map[string]executor.AiExecutor)
|
executorMap := make(map[string]executor.AiExecutor)
|
||||||
collectorMap := make(map[string]collector.AiCollector)
|
collectorMap := make(map[string]collector.AiCollector)
|
||||||
for k, v := range AiTypeMap {
|
for _, c := range clusters.List {
|
||||||
switch v {
|
switch c.Name {
|
||||||
case OCTOPUS:
|
case OCTOPUS:
|
||||||
octopus := storeLink.NewOctopusLink(octopusRpc, k, 0)
|
id, _ := strconv.ParseInt(c.Id, 10, 64)
|
||||||
collectorMap[k] = octopus
|
octopus := storeLink.NewOctopusLink(octopusRpc, c.Nickname, id)
|
||||||
executorMap[k] = octopus
|
collectorMap[c.Nickname] = octopus
|
||||||
|
executorMap[c.Nickname] = octopus
|
||||||
case MODELARTS:
|
case MODELARTS:
|
||||||
modelarts := storeLink.NewModelArtsLink(modelArtsRpc, modelArtsImgRpc, k, 0)
|
id, _ := strconv.ParseInt(c.Id, 10, 64)
|
||||||
collectorMap[k] = modelarts
|
modelarts := storeLink.NewModelArtsLink(modelArtsRpc, modelArtsImgRpc, c.Nickname, id)
|
||||||
executorMap[k] = modelarts
|
collectorMap[c.Nickname] = modelarts
|
||||||
|
executorMap[c.Nickname] = modelarts
|
||||||
case SHUGUANGAI:
|
case SHUGUANGAI:
|
||||||
sgai := storeLink.NewShuguangAi(aCRpc, k, 0)
|
id, _ := strconv.ParseInt(c.Id, 10, 64)
|
||||||
collectorMap[k] = sgai
|
sgai := storeLink.NewShuguangAi(aCRpc, c.Nickname, id)
|
||||||
executorMap[k] = sgai
|
collectorMap[c.Nickname] = sgai
|
||||||
|
executorMap[c.Nickname] = sgai
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &executorMap, &collectorMap
|
return &executorMap, &collectorMap
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,8 +120,8 @@ func NewServiceContext(c config.Config) *ServiceContext {
|
||||||
aCRpc := hpcacclient.NewHpcAC(zrpc.MustNewClient(c.ACRpcConf))
|
aCRpc := hpcacclient.NewHpcAC(zrpc.MustNewClient(c.ACRpcConf))
|
||||||
modelArtsRpc := modelartsservice.NewModelArtsService(zrpc.MustNewClient(c.ModelArtsRpcConf))
|
modelArtsRpc := modelartsservice.NewModelArtsService(zrpc.MustNewClient(c.ModelArtsRpcConf))
|
||||||
modelArtsImgRpc := imagesservice.NewImagesService(zrpc.MustNewClient(c.ModelArtsImgRpcConf))
|
modelArtsImgRpc := imagesservice.NewImagesService(zrpc.MustNewClient(c.ModelArtsImgRpcConf))
|
||||||
aiExecutor, resourceCollector := service.InitAiClusterMap(octopusRpc, modelArtsRpc, modelArtsImgRpc, aCRpc)
|
|
||||||
storage := &database.AiStorage{DbEngin: dbEngin}
|
storage := &database.AiStorage{DbEngin: dbEngin}
|
||||||
|
aiExecutor, resourceCollector := service.InitAiClusterMap(octopusRpc, modelArtsRpc, modelArtsImgRpc, aCRpc, storage)
|
||||||
scheduler := scheduler.NewSchdlr(resourceCollector, storage, aiExecutor)
|
scheduler := scheduler.NewSchdlr(resourceCollector, storage, aiExecutor)
|
||||||
|
|
||||||
return &ServiceContext{
|
return &ServiceContext{
|
||||||
|
|
Loading…
Reference in New Issue