Browse Source

updated pcm.api and ai storage

Former-commit-id: ad231ed21f
pull/103/head
tzwang 1 year ago
parent
commit
5c0a3de849
5 changed files with 34 additions and 26 deletions
  1. +1
    -1
      api/desc/pcm.api
  2. +3
    -3
      api/desc/schedule/pcm-schedule.api
  3. +10
    -0
      api/internal/scheduler/database/aiStorage.go
  4. +19
    -21
      api/internal/scheduler/service/aiService.go
  5. +1
    -1
      api/internal/svc/servicecontext.go

+ 1
- 1
api/desc/pcm.api View File

@@ -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)


+ 3
- 3
api/desc/schedule/pcm-schedule.api View File

@@ -55,9 +55,9 @@ type (
} }


AiAlgorithmsReq { AiAlgorithmsReq {
ResourceType string `json:"resourceType"`
TaskType string `json:"taskType"`
Dataset string `json:"dataset"`
ResourceType string `path:"resourceType"`
TaskType string `path:"taskType"`
Dataset string `path:"dataset"`
} }


AiAlgorithmsResp { AiAlgorithmsResp {


+ 10
- 0
api/internal/scheduler/database/aiStorage.go View File

@@ -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{


+ 19
- 21
api/internal/scheduler/service/aiService.go View File

@@ -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 (
AiTypeMap = map[string]string{
"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, storages *database.AiStorage) (*map[string]executor.AiExecutor, *map[string]collector.AiCollector) {
clusters, _ := storages.GetClustersByAdapterId("1777144940459986944")


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 {
switch v {
for _, c := range clusters.List {
switch c.Name {
case OCTOPUS: case OCTOPUS:
octopus := storeLink.NewOctopusLink(octopusRpc, k, 0)
collectorMap[k] = octopus
executorMap[k] = octopus
id, _ := strconv.ParseInt(c.Id, 10, 64)
octopus := storeLink.NewOctopusLink(octopusRpc, c.Nickname, id)
collectorMap[c.Nickname] = octopus
executorMap[c.Nickname] = octopus
case MODELARTS: case MODELARTS:
modelarts := storeLink.NewModelArtsLink(modelArtsRpc, modelArtsImgRpc, k, 0)
collectorMap[k] = modelarts
executorMap[k] = modelarts
id, _ := strconv.ParseInt(c.Id, 10, 64)
modelarts := storeLink.NewModelArtsLink(modelArtsRpc, modelArtsImgRpc, c.Nickname, id)
collectorMap[c.Nickname] = modelarts
executorMap[c.Nickname] = modelarts
case SHUGUANGAI: case SHUGUANGAI:
sgai := storeLink.NewShuguangAi(aCRpc, k, 0)
collectorMap[k] = sgai
executorMap[k] = sgai
id, _ := strconv.ParseInt(c.Id, 10, 64)
sgai := storeLink.NewShuguangAi(aCRpc, c.Nickname, id)
collectorMap[c.Nickname] = sgai
executorMap[c.Nickname] = sgai
} }
} }

return &executorMap, &collectorMap return &executorMap, &collectorMap
} }

+ 1
- 1
api/internal/svc/servicecontext.go View File

@@ -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…
Cancel
Save