Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
nni
Commits
2b77ab2d
Unverified
Commit
2b77ab2d
authored
Apr 30, 2020
by
SparkSnail
Committed by
GitHub
Apr 30, 2020
Browse files
Support multiphase in PAIK8S (#2368)
parent
86300551
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
12 deletions
+16
-12
src/nni_manager/training_service/pai/paiK8S/paiK8STrainingService.ts
...ager/training_service/pai/paiK8S/paiK8STrainingService.ts
+14
-10
test/pipelines/pipelines-it-pai-windows.yml
test/pipelines/pipelines-it-pai-windows.yml
+1
-1
test/pipelines/pipelines-it-pai.yml
test/pipelines/pipelines-it-pai.yml
+1
-1
No files found.
src/nni_manager/training_service/pai/paiK8S/paiK8STrainingService.ts
View file @
2b77ab2d
...
...
@@ -100,12 +100,15 @@ class PAIK8STrainingService extends PAITrainingService {
}
}
//
TODO:
update trial parameters
// update trial parameters
for multi-phase
public
async
updateTrialJob
(
trialJobId
:
string
,
form
:
TrialJobApplicationForm
):
Promise
<
TrialJobDetail
>
{
const
trialJobDetail
:
undefined
|
TrialJobDetail
=
this
.
trialJobsMap
.
get
(
trialJobId
);
const
trialJobDetail
:
PAI
TrialJobDetail
|
undefined
=
this
.
trialJobsMap
.
get
(
trialJobId
);
if
(
trialJobDetail
===
undefined
)
{
throw
new
Error
(
`updateTrialJob failed:
${
trialJobId
}
not found`
);
}
// Write file content ( parameter.cfg ) to working folders
await
this
.
writeParameterFile
(
trialJobDetail
.
logPath
,
form
.
hyperParameters
);
return
trialJobDetail
;
}
...
...
@@ -230,24 +233,20 @@ class PAIK8STrainingService extends PAITrainingService {
this
.
paiRestServerPort
=
this
.
paiJobRestServer
.
clusterRestServerPort
;
// Step 1. Prepare PAI job configuration
const
trialLocalFolder
:
string
=
path
.
join
(
this
.
paiTrialConfig
.
nniManagerNFSMountPath
,
this
.
experimentId
,
trialJobId
);
//create trial local working folder locally.
await
execMkdir
(
trial
LocalFolder
);
await
execMkdir
(
trial
JobDetail
.
logPath
);
const
runScriptContent
:
string
=
CONTAINER_INSTALL_NNI_SHELL_FORMAT
;
// Write NNI installation file to local files
await
fs
.
promises
.
writeFile
(
path
.
join
(
trial
LocalFolder
,
'
install_nni.sh
'
),
runScriptContent
,
{
encoding
:
'
utf8
'
});
await
fs
.
promises
.
writeFile
(
path
.
join
(
trial
JobDetail
.
logPath
,
'
install_nni.sh
'
),
runScriptContent
,
{
encoding
:
'
utf8
'
});
// Write file content ( parameter.cfg ) to local working folders
if
(
trialJobDetail
.
form
!==
undefined
)
{
await
fs
.
promises
.
writeFile
(
path
.
join
(
trialLocalFolder
,
generateParamFileName
(
trialJobDetail
.
form
.
hyperParameters
)),
trialJobDetail
.
form
.
hyperParameters
.
value
,
{
encoding
:
'
utf8
'
}
);
await
this
.
writeParameterFile
(
trialJobDetail
.
logPath
,
trialJobDetail
.
form
.
hyperParameters
);
}
//Copy codeDir files to local working folder
await
execCopydir
(
this
.
paiTrialConfig
.
codeDir
,
trial
LocalFolder
);
await
execCopydir
(
this
.
paiTrialConfig
.
codeDir
,
trial
JobDetail
.
logPath
);
const
nniManagerIp
:
string
=
this
.
nniManagerIpConfig
?
this
.
nniManagerIpConfig
.
nniManagerIp
:
getIPV4Address
();
const
version
:
string
=
this
.
versionCheck
?
await
getVersion
()
:
''
;
...
...
@@ -298,6 +297,11 @@ class PAIK8STrainingService extends PAITrainingService {
return
deferred
.
promise
;
}
private
async
writeParameterFile
(
directory
:
string
,
hyperParameters
:
HyperParameters
):
Promise
<
void
>
{
const
filepath
:
string
=
path
.
join
(
directory
,
generateParamFileName
(
hyperParameters
));
await
fs
.
promises
.
writeFile
(
filepath
,
hyperParameters
.
value
,
{
encoding
:
'
utf8
'
});
}
}
export
{
PAIK8STrainingService
};
test/pipelines/pipelines-it-pai-windows.yml
View file @
2b77ab2d
...
...
@@ -70,5 +70,5 @@ jobs:
python --version
mount -o anon $(pai_nfs_uri) $(local_nfs_uri)
python nni_test/nnitest/generate_ts_config.py --ts pai --pai_token $(pai_token) --pai_host $(pai_host) --pai_user $(pai_user) --nni_docker_image $(docker_image) --pai_storage_plugin $(pai_storage_plugin) --nni_manager_nfs_mount_path $(nni_manager_nfs_mount_path) --container_nfs_mount_path $(container_nfs_mount_path) --nni_manager_ip $(nni_manager_ip)
python nni_test/nnitest/run_tests.py --config config/integration_tests.yml --ts pai
--exclude multi-phase
python nni_test/nnitest/run_tests.py --config config/integration_tests.yml --ts pai
displayName
:
'
Examples
and
advanced
features
tests
on
pai'
\ No newline at end of file
test/pipelines/pipelines-it-pai.yml
View file @
2b77ab2d
...
...
@@ -57,5 +57,5 @@ jobs:
cd test
python3 nni_test/nnitest/generate_ts_config.py --ts pai --pai_host $(pai_host) --pai_user $(pai_user) --nni_docker_image $TEST_IMG --pai_storage_plugin $(pai_storage_plugin)\
--pai_token $(pai_token) --nni_manager_nfs_mount_path $(nni_manager_nfs_mount_path) --container_nfs_mount_path $(container_nfs_mount_path) --nni_manager_ip $(nni_manager_ip)
PATH=$HOME/.local/bin:$PATH python3 nni_test/nnitest/run_tests.py --config config/integration_tests.yml --ts pai
--exclude multi-phase
PATH=$HOME/.local/bin:$PATH python3 nni_test/nnitest/run_tests.py --config config/integration_tests.yml --ts pai
displayName
:
'
integration
test'
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment