You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

aiService.go 1.9 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package service
  2. import (
  3. "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
  4. "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/database"
  5. "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
  6. "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/executor"
  7. "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/storeLink"
  8. "gitlink.org.cn/JointCloud/pcm-octopus/octopusclient"
  9. "gitlink.org.cn/jcce-pcm/pcm-participant-modelarts/client/imagesservice"
  10. "gitlink.org.cn/jcce-pcm/pcm-participant-modelarts/client/modelartsservice"
  11. "strconv"
  12. )
  13. const (
  14. OCTOPUS = "octopus"
  15. MODELARTS = "modelarts"
  16. SHUGUANGAI = "shuguangAi"
  17. )
  18. 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) {
  19. clusters, _ := storages.GetClustersByAdapterId("1777144940459986944")
  20. executorMap := make(map[string]executor.AiExecutor)
  21. collectorMap := make(map[string]collector.AiCollector)
  22. for _, c := range clusters.List {
  23. switch c.Name {
  24. case OCTOPUS:
  25. id, _ := strconv.ParseInt(c.Id, 10, 64)
  26. octopus := storeLink.NewOctopusLink(octopusRpc, c.Nickname, id)
  27. collectorMap[c.Nickname] = octopus
  28. executorMap[c.Nickname] = octopus
  29. case MODELARTS:
  30. id, _ := strconv.ParseInt(c.Id, 10, 64)
  31. modelarts := storeLink.NewModelArtsLink(modelArtsRpc, modelArtsImgRpc, c.Nickname, id)
  32. collectorMap[c.Nickname] = modelarts
  33. executorMap[c.Nickname] = modelarts
  34. case SHUGUANGAI:
  35. id, _ := strconv.ParseInt(c.Id, 10, 64)
  36. sgai := storeLink.NewShuguangAi(aCRpc, c.Nickname, id)
  37. collectorMap[c.Nickname] = sgai
  38. executorMap[c.Nickname] = sgai
  39. }
  40. }
  41. return &executorMap, &collectorMap
  42. }

PCM is positioned as Software stack over Cloud, aiming to build the standards and ecology of heterogeneous cloud collaboration for JCC in a non intrusive and autonomous peer-to-peer manner.