Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

[MXNET-1251] Basic configuration to do static-linking #13621

Merged
merged 5 commits into from
Dec 15, 2018

Conversation

lanking520
Copy link
Member

Description

For Ubuntu 14.04 base build to install all dependencies.
@szha @zachgk

Checklist

Essentials

Please feel free to remove inapplicable items for your PR.

  • The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
  • Changes are complete (i.e. I finished coding on this PR)
  • All changes have test coverage:
  • Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
  • Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
  • Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
  • Code is well-documented:
  • For user-facing API changes, API doc string has been updated.
  • For new C++ functions in header files, their functionalities and arguments are documented.
  • For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
  • Check the API doc at http:https://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
  • To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

@marcoabreu
Copy link
Contributor

Any specific reason we aim for Ubuntu 14? Ubuntu 18 has already been released

@lanking520
Copy link
Member Author

@marcoabreu As far as I know. Cent OS 7, Amazon Linux all share the same GLIBC version with Ubuntu 14.04 and Ubuntu 16.04 has a higher GLIBC version. To make it compatible, we should use 14.04 as the base OS

--slave /usr/bin/g++ g++ /usr/bin/g++-4.8
update-alternatives --config gcc
# Java specific
apt-get install -y openjdk-8-jdk
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend using the maven3 ppa (sudo add-apt-repository ppa:andrei-pozolotin/maven3) and combining all of the apt-get installs into one call. Also just run one apt-get update after all of the ppa additions and use "set -ex"

@marcoabreu
Copy link
Contributor

Yeah but then we have to maintain two systems. RHEL is known to always be behind due to their strict support, but that shouldn't limit us for support of other operating systems. Would be great if you could separate that

Copy link
Contributor

@marcoabreu marcoabreu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please split RHEL and Debian based pipelines

@lanking520
Copy link
Member Author

@marcoabreu This is the publish configuration that works for all different platforms and this will not be used in all the rest CIs for testing. The optimal goal is using one configuration to create a pip or maven package that works for all platforms. We do have a plan to upgrade this into 16.04 once we have a test pipeline set up in Jenkins. This script is just to inherit the legacy of current publish pipeline.

About the RHEL and Debian diff. Firstly the published stuff is all the same no matter on RHEL or Debian and can be run on either. Introducing a different publish pipeline for these two in this case is not necessary as it introduce more maintainance nightmare.

@marcoabreu
Copy link
Contributor

Thanks for the insight, Qing! Can the binaries you create with this script in that form be loaded into ubuntu16/18 and other systems that have later versions? If yes, then I'm fine with that approach :)

@lanking520
Copy link
Member Author

Thanks for the insight, Qing! Can the binaries you create with this script in that form be loaded into ubuntu16/18 and other systems that have later versions? If yes, then I'm fine with that approach :)

The answer is yes. In fact, @frankfliu has already working on producing the Dockerfile from this script that works for 16.04 with the publish pipeline. However it depends on the setup of the test-publish step to be ready and then we can test them through the pipeline instead of dive into different OS VMs to test manually.

Copy link
Contributor

@marcoabreu marcoabreu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright thanks for your explanation. Please feel free to go ahead then.

You might want to add a comment in the code which packages specifically have to stay at a certain version and that they are chosen as the smallest common denominator

@roywei
Copy link
Member

roywei commented Dec 14, 2018

@mxnet-label-bot add[Build, pr-awaiting-merge]

@marcoabreu marcoabreu added Build pr-awaiting-merge Review and CI is complete. Ready to Merge labels Dec 14, 2018
@lanking520 lanking520 merged commit 1128f8e into apache:master Dec 15, 2018
mseth10 pushed a commit to mseth10/incubator-mxnet that referenced this pull request Dec 18, 2018
* Basic configuration to do static-linking

* update build script and place it in the install part

* clean up the code further

* revert maven into build-from-source

* add curl to deps
lanking520 added a commit to lanking520/incubator-mxnet that referenced this pull request Jan 3, 2019
* Basic configuration to do static-linking

* update build script and place it in the install part

* clean up the code further

* revert maven into build-from-source

* add curl to deps
@lanking520 lanking520 deleted the publishPipe branch March 11, 2019 22:29
lanking520 added a commit to lanking520/incubator-mxnet that referenced this pull request Apr 26, 2019
* Basic configuration to do static-linking

* update build script and place it in the install part

* clean up the code further

* revert maven into build-from-source

* add curl to deps
lanking520 added a commit to lanking520/incubator-mxnet that referenced this pull request Apr 26, 2019
* Basic configuration to do static-linking

* update build script and place it in the install part

* clean up the code further

* revert maven into build-from-source

* add curl to deps
lanking520 added a commit to lanking520/incubator-mxnet that referenced this pull request Apr 30, 2019
* Basic configuration to do static-linking

* update build script and place it in the install part

* clean up the code further

* revert maven into build-from-source

* add curl to deps
zachgk pushed a commit to zachgk/incubator-mxnet that referenced this pull request May 16, 2019
* Basic configuration to do static-linking

* update build script and place it in the install part

* clean up the code further

* revert maven into build-from-source

* add curl to deps
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Build pr-awaiting-merge Review and CI is complete. Ready to Merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants