Skip to content
This repository has been archived by the owner on Sep 18, 2024. It is now read-only.

Commit

Permalink
Merge pull request #193 from microsoft/master
Browse files Browse the repository at this point in the history
merge master
  • Loading branch information
SparkSnail authored Jul 24, 2019
2 parents c76068f + 3c78596 commit 803b6e4
Show file tree
Hide file tree
Showing 11 changed files with 48 additions and 3 deletions.
2 changes: 2 additions & 0 deletions docs/en_US/sdk_reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Trial
.. autofunction:: nni.get_current_parameter
.. autofunction:: nni.report_intermediate_result
.. autofunction:: nni.report_final_result
.. autofunction:: nni.get_experiment_id
.. autofunction:: nni.get_trial_id
.. autofunction:: nni.get_sequence_id


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import * as path from 'path';
import * as ts from 'tail-stream';
import * as tkill from 'tree-kill';
import { NNIError, NNIErrorNames } from '../../common/errors';
import { getInitTrialSequenceId } from '../../common/experimentStartupInfo';
import { getExperimentId, getInitTrialSequenceId } from '../../common/experimentStartupInfo';
import { getLogger, Logger } from '../../common/log';
import {
HostJobApplicationForm, HyperParameters, JobApplicationForm, TrainingService, TrialJobApplicationForm,
Expand Down Expand Up @@ -126,6 +126,7 @@ class LocalTrainingService implements TrainingService {
private stopping: boolean;
private rootDir!: string;
private trialSequenceId: number;
private readonly experimentId! : string;
private gpuScheduler!: GPUScheduler;
private readonly occupiedGpuIndexNumMap: Map<number, number>;
private designatedGpuIndices!: Set<number>;
Expand All @@ -145,6 +146,7 @@ class LocalTrainingService implements TrainingService {
this.stopping = false;
this.log = getLogger();
this.trialSequenceId = -1;
this.experimentId = getExperimentId();
this.jobStreamMap = new Map<string, ts.Stream>();
this.log.info('Construct local machine training service.');
this.occupiedGpuIndexNumMap = new Map<number, number>();
Expand Down Expand Up @@ -400,6 +402,7 @@ class LocalTrainingService implements TrainingService {
resource: { gpuIndices: number[] }): { key: string; value: string }[] {
const envVariables: { key: string; value: string }[] = [
{ key: 'NNI_PLATFORM', value: 'local' },
{ key: 'NNI_EXP_ID', value: this.experimentId },
{ key: 'NNI_SYS_DIR', value: trialJobDetail.workingDirectory },
{ key: 'NNI_TRIAL_JOB_ID', value: trialJobDetail.id },
{ key: 'NNI_OUTPUT_DIR', value: trialJobDetail.workingDirectory },
Expand Down
1 change: 1 addition & 0 deletions src/sdk/pynni/nni/env_vars.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

_trial_env_var_names = [
'NNI_PLATFORM',
'NNI_EXP_ID',
'NNI_TRIAL_JOB_ID',
'NNI_SYS_DIR',
'NNI_OUTPUT_DIR',
Expand Down
6 changes: 6 additions & 0 deletions src/sdk/pynni/nni/platform/local.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,5 +94,11 @@ def send_metric(string):
else:
subprocess.run(['touch', _metric_file.name], check = True)

def get_experiment_id():
return trial_env_vars.NNI_EXP_ID

def get_trial_id():
return trial_env_vars.NNI_TRIAL_JOB_ID

def get_sequence_id():
return trial_env_vars.NNI_TRIAL_SEQ_ID
6 changes: 6 additions & 0 deletions src/sdk/pynni/nni/platform/standalone.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,12 @@
def get_next_parameter():
pass

def get_experiment_id():
pass

def get_trial_id():
pass

def get_sequence_id():
pass

Expand Down
6 changes: 6 additions & 0 deletions src/sdk/pynni/nni/platform/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@
def get_next_parameter():
return _params

def get_experiment_id():
return 'fakeidex'

def get_trial_id():
return 'fakeidtr'

def get_sequence_id():
return 0

Expand Down
10 changes: 10 additions & 0 deletions src/sdk/pynni/nni/trial.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,15 @@
'get_current_parameter',
'report_intermediate_result',
'report_final_result',
'get_experiment_id',
'get_trial_id',
'get_sequence_id'
]


_params = None
_experiment_id = platform.get_experiment_id()
_trial_id = platform.get_trial_id()
_sequence_id = platform.get_sequence_id()


Expand All @@ -52,6 +56,12 @@ def get_current_parameter(tag):
return None
return _params['parameters'][tag]

def get_experiment_id():
return _experiment_id

def get_trial_id():
return _trial_id

def get_sequence_id():
return _sequence_id

Expand Down
6 changes: 6 additions & 0 deletions src/sdk/pynni/tests/test_trial.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,12 @@ def test_get_current_parameter(self):
nni.get_next_parameter()
self.assertEqual(nni.get_current_parameter('x'), 123)

def test_get_experiment_id(self):
self.assertEqual(nni.get_experiment_id(), 'fakeidex')

def test_get_trial_id(self):
self.assertEqual(nni.get_trial_id(), 'fakeidtr')

def test_get_sequence_id(self):
self.assertEqual(nni.get_sequence_id(), 0)

Expand Down
4 changes: 3 additions & 1 deletion src/webui/src/components/TrialsDetail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState>
Object.keys(trialJobs).map(item => {
let desc: Parameters = {
parameters: {},
intermediate: []
intermediate: [],
progress: 1
};
let duration = 0;
const id = trialJobs[item].id !== undefined
Expand All @@ -125,6 +126,7 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState>
const tempHyper = trialJobs[item].hyperParameters;
if (tempHyper !== undefined) {
const getPara = JSON.parse(tempHyper[tempHyper.length - 1]).parameters;
desc.progress = tempHyper.length;
if (typeof getPara === 'string') {
desc.parameters = JSON.parse(getPara);
} else {
Expand Down
4 changes: 3 additions & 1 deletion src/webui/src/components/public-child/OpenRow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ class OpenRow extends React.Component<OpenRowProps, OpenRowState> {
<br />
For the entire parameter set, please refer to the following "
<a href={trialink} target="_blank">{trialink}</a>".
<br/>
Current Phase: {record.description.progress}.
</Row>
:
<div />
Expand Down Expand Up @@ -168,4 +170,4 @@ class OpenRow extends React.Component<OpenRowProps, OpenRowState> {
}
}

export default OpenRow;
export default OpenRow;
1 change: 1 addition & 0 deletions src/webui/src/static/interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ interface Parameters {
parameters: ErrorParameter;
logPath?: string;
intermediate: Array<number>;
progress?: number;
}

interface Experiment {
Expand Down

0 comments on commit 803b6e4

Please sign in to comment.