Skip to content

Commit

Permalink
API: Add WorkerStatus to GetMetrics and remove unused items (#110)
Browse files Browse the repository at this point in the history
* update API

Signed-off-by: YujiOshima <yuji.oshima0x3fd@gmail.com>

* add status to GetMetrics and delete unused item in API

Signed-off-by: YujiOshima <yuji.oshima0x3fd@gmail.com>
  • Loading branch information
YujiOshima authored and k8s-ci-robot committed Jun 13, 2018
1 parent aa1d592 commit 14963b0
Show file tree
Hide file tree
Showing 13 changed files with 2,221 additions and 781 deletions.
38 changes: 11 additions & 27 deletions cmd/manager/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,21 +87,10 @@ func (s *server) GetTrials(ctx context.Context, in *pb.GetTrialsRequest) (*pb.Ge
}

func (s *server) GetSuggestions(ctx context.Context, in *pb.GetSuggestionsRequest) (*pb.GetSuggestionsReply, error) {
suggestAlgorithm := ""
if in.SuggestionAlgorithm != "" {
suggestAlgorithm = in.SuggestionAlgorithm
} else {
sc, err := dbIf.GetStudyConfig(in.StudyId)
if err != nil {
return &pb.GetSuggestionsReply{Trials: []*pb.Trial{}}, err
}
suggestAlgorithm = sc.DefaultSuggestionAlgorithm
}
if suggestAlgorithm == "" {
if in.SuggestionAlgorithm == "" {
return &pb.GetSuggestionsReply{Trials: []*pb.Trial{}}, errors.New("No suggest algorithm specified")
}

conn, err := grpc.Dial("vizier-suggestion-"+suggestAlgorithm+":6789", grpc.WithInsecure())
conn, err := grpc.Dial("vizier-suggestion-"+in.SuggestionAlgorithm+":6789", grpc.WithInsecure())
if err != nil {
return &pb.GetSuggestionsReply{Trials: []*pb.Trial{}}, err
}
Expand Down Expand Up @@ -149,20 +138,10 @@ func (s *server) GetWorkers(ctx context.Context, in *pb.GetWorkersRequest) (*pb.
}

func (s *server) GetShouldStopWorkers(ctx context.Context, in *pb.GetShouldStopWorkersRequest) (*pb.GetShouldStopWorkersReply, error) {
EarlyStoppingAlgorithm := ""
if in.EarlyStoppingAlgorithm != "" {
EarlyStoppingAlgorithm = in.EarlyStoppingAlgorithm
} else {
sc, err := dbIf.GetStudyConfig(in.StudyId)
if err != nil {
return &pb.GetShouldStopWorkersReply{}, err
}
EarlyStoppingAlgorithm = sc.DefaultEarlyStoppingAlgorithm
}
if EarlyStoppingAlgorithm == "" {
if in.EarlyStoppingAlgorithm == "" {
return &pb.GetShouldStopWorkersReply{}, errors.New("No EarlyStopping Algorithm specified")
}
conn, err := grpc.Dial("vizier-earlystopping-"+EarlyStoppingAlgorithm+":6789", grpc.WithInsecure())
conn, err := grpc.Dial("vizier-earlystopping-"+in.EarlyStoppingAlgorithm+":6789", grpc.WithInsecure())
if err != nil {
return &pb.GetShouldStopWorkersReply{}, err
}
Expand All @@ -188,9 +167,14 @@ func (s *server) GetMetrics(ctx context.Context, in *pb.GetMetricsRequest) (*pb.
}
mls := make([]*pb.MetricsLogSet, len(in.WorkerIds))
for i, w := range in.WorkerIds {
wr, err := s.GetWorkers(ctx, &pb.GetWorkersRequest{WorkerId: w})
if err != nil {
return &pb.GetMetricsReply{}, err
}
mls[i] = &pb.MetricsLogSet{
WorkerId: w,
MetricsLogs: make([]*pb.MetricsLog, len(mNames)),
WorkerId: w,
MetricsLogs: make([]*pb.MetricsLog, len(mNames)),
WorkerStatus: wr.Workers[0].Status,
}
for j, m := range mNames {
ls, err := dbIf.GetWorkerLogs(w, &kdb.GetWorkerLogOpts{Name: m})
Expand Down
12 changes: 5 additions & 7 deletions examples/GKEDemo/git-issue-summarize-demo.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,11 @@ import (
)

var studyConfig = api.StudyConfig{
Name: "grid-demo",
Owner: "katib",
OptimizationType: api.OptimizationType_MAXIMIZE,
OptimizationGoal: 0.99,
DefaultSuggestionAlgorithm: "grid",
DefaultEarlyStoppingAlgorithm: "medianstopping",
ObjectiveValueName: "Validation-accuracy",
Name: "grid-demo",
Owner: "katib",
OptimizationType: api.OptimizationType_MAXIMIZE,
OptimizationGoal: 0.99,
ObjectiveValueName: "Validation-accuracy",
Metrics: []string{
"accuracy",
},
Expand Down
23 changes: 13 additions & 10 deletions examples/client-example.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ func main() {
//RunTrials
workerIds := runTrials(c, studyId, getSuggestReply)

for !isCompletedAllWorker(c, studyId) {
for true {
time.Sleep(10 * time.Second)
getMetricsRequest := &api.GetMetricsRequest{
StudyId: studyId,
Expand All @@ -52,6 +52,9 @@ func main() {
}
//Save or Update model on ModelDB
SaveOrUpdateModel(c, getMetricsReply)
if isCompletedAllWorker(c, getMetricsReply.MetricsLogSets) {
break
}
}
}

Expand Down Expand Up @@ -217,15 +220,15 @@ func SaveOrUpdateModel(c api.ManagerClient, getMetricsReply *api.GetMetricsReply
}
}

func isCompletedAllWorker(c api.ManagerClient, studyId string) bool {
ctx := context.Background()
getWorkerRequest := &api.GetWorkersRequest{StudyId: studyId}
getWorkerReply, err := c.GetWorkers(ctx, getWorkerRequest)
if err != nil {
log.Fatalf("GetWorker Error %v", err)
}
for _, w := range getWorkerReply.Workers {
if w.Status != api.State_COMPLETED {
func isCompletedAllWorker(c api.ManagerClient, ms []*api.MetricsLogSet) bool {
// ctx := context.Background()
// getWorkerRequest := &api.GetWorkersRequest{StudyId: studyId}
// getWorkerReply, err := c.GetWorkers(ctx, getWorkerRequest)
// if err != nil {
// log.Fatalf("GetWorker Error %v", err)
// }
for _, mls := range ms {
if mls.WorkerStatus != api.State_COMPLETED {
return false
}
}
Expand Down
6 changes: 2 additions & 4 deletions examples/study-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ parameterconfigs:
- name: --lr
parametertype: 1
feasible:
min: "0.03"
max: "0.07"
min: "0.01"
max: "0.03"
- name: --num-layers
parametertype: 2
feasible:
Expand All @@ -21,8 +21,6 @@ parameterconfigs:
- sgd
- adam
- ftrl
defaultsuggestionalgorithm: random
defaultearlystoppingalgorithm: medianstopping
objectivevaluename: Validation-accuracy
metrics:
- accuracy
Expand Down
Loading

0 comments on commit 14963b0

Please sign in to comment.