Skip to content

Instantly share code, notes, and snippets.

@b0noI
Last active April 5, 2019 16:46
Show Gist options
  • Select an option

  • Save b0noI/0b7da37bb63ebfe984c0699bebb81603 to your computer and use it in GitHub Desktop.

Select an option

Save b0noI/0b7da37bb63ebfe984c0699bebb81603 to your computer and use it in GitHub Desktop.
if lspci -vnn | grep NVIDIA > /dev/null 2>&1; then
# Nvidia card found, need to check if driver is up
if ! nvidia-smi > /dev/null 2>&1; then
echo "Installing driver"
/opt/deeplearning/install-driver.sh
fi
fi
readonly INPUT_NOTEBOOK_GCS_FILE=$(curl http://metadata.google.internal/computeMetadata/v1/instance/attributes/input_notebook -H "Metadata-Flavor: Google")
readonly OUTPUT_NOTEBOOK_GCS_FOLDER=$(curl http://metadata.google.internal/computeMetadata/v1/instance/attributes/output_notebook -H "Metadata-Flavor: Google")
readonly PARAMETERS_GCS_FILE=$(curl --fail http://metadata.google.internal/computeMetadata/v1/instance/attributes/parameters_file -H "Metadata-Flavor: Google")
readonly TEMPORARY_NOTEBOOK_FOLDER="/tmp/notebook"
mkdir "${TEMPORARY_NOTEBOOK_FOLDER}"
readonly OUTPUT_NOTEBOOK_NAME=$(basename ${INPUT_NOTEBOOK_GCS_FILE})
readonly OUTPUT_NOTEBOOK_CLEAN_NAME="${OUTPUT_NOTEBOOK_NAME%.ipynb}-clean"
readonly TEMPORARY_NOTEBOOK_PATH="${TEMPORARY_NOTEBOOK_FOLDER}/${OUTPUT_NOTEBOOK_NAME}"
PAPERMILL_EXIT_CODE=0
if [[ -z "${PARAMETERS_GCS_FILE}" ]]; then
echo "No input parameters present"
papermill "${INPUT_NOTEBOOK_GCS_FILE}" "${TEMPORARY_NOTEBOOK_PATH}" --log-output
else
echo "input parameters present"
echo "GCS file with parameters: ${PARAMETERS_GCS_FILE}"
gsutil cp "${PARAMETERS_GCS_FILE}" params.yaml
papermill "${INPUT_NOTEBOOK_GCS_FILE}" "${TEMPORARY_NOTEBOOK_PATH}" -f params.yaml --log-output
fi
PAPERMILL_EXIT_CODE=$?
echo "Papermill exit code is: ${PAPERMILL_EXIT_CODE}"
if [[ "${PAPERMILL_EXIT_CODE}" -ne 0 ]]; then
echo "Unable to execute notebook. Exit code: ${PAPERMILL_EXIT_CODE}"
touch "${TEMPORARY_NOTEBOOK_FOLDER}/FAILED"
else
cd "${TEMPORARY_NOTEBOOK_FOLDER}"
jupyter nbconvert "${TEMPORARY_NOTEBOOK_PATH}"
jupyter nbconvert "${TEMPORARY_NOTEBOOK_PATH}" --output "${OUTPUT_NOTEBOOK_CLEAN_NAME}" --TemplateExporter.exclude_input=True
fi
gsutil rsync -r "${TEMPORARY_NOTEBOOK_FOLDER}" "${OUTPUT_NOTEBOOK_GCS_FOLDER}"
readonly INSTANCE_NAME=$(curl http://metadata.google.internal/computeMetadata/v1/instance/name -H "Metadata-Flavor: Google")
INSTANCE_ZONE="/"$(curl http://metadata.google.internal/computeMetadata/v1/instance/zone -H "Metadata-Flavor: Google")
INSTANCE_ZONE="${INSTANCE_ZONE##/*/}"
readonly INSTANCE_PROJECT_NAME=$(curl http://metadata.google.internal/computeMetadata/v1/project/project-id -H "Metadata-Flavor: Google")
gcloud --quiet compute instances delete "${INSTANCE_NAME}" --zone "${INSTANCE_ZONE}" --project "${INSTANCE_PROJECT_NAME}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment