Skip to content

Commit 6316f8d

Browse files
authored
Merge pull request #82 from bluescarni/pr/arm_ppc
ARM/PPC support
2 parents e52a2e8 + 43973b9 commit 6316f8d

8 files changed

+127
-16
lines changed

.circleci/config.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ jobs:
2525
- run:
2626
name: Build and test
2727
command: bash ./tools/circleci_bionic_conda_pagmo_head_39.sh
28+
ubuntu_arm64:
29+
machine:
30+
image: ubuntu-2004:202101-01
31+
resource_class: arm.medium
32+
steps:
33+
- checkout
34+
- run:
35+
name: Build and test
36+
command: bash ./tools/circleci_ubuntu_arm64.sh
2837

2938
workflows:
3039
version: 2.1
@@ -33,3 +42,4 @@ workflows:
3342
- bionic_conda_pagmo_head_38
3443
- bionic_conda_pagmo_head_37
3544
- bionic_conda_pagmo_head_39
45+
- ubuntu_arm64

.travis.yml.old renamed to .travis.yml

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,33 +11,38 @@ env:
1111
secure: MW6tNPPUcb7rxTXb1XvOQA6VQfwZSKjbnlNuTj/z+WPGzas5tjUShLfF0BcknOP8IVyYWV14jTKn89SDhlZi3oYw8xVJxbmH049c4qab5/SMTV0wFjl85Kgmt1aIUTdtDHBNrfYDHpGUr80nuLFMq+kgkhflDOU50p22fZ0gtiNftFn6mvnqkoC9rZBUis0SXG3NqEDjdJKYtNRsjlN9UX4oKHW4qwiOrJULNbfJVSkSx9Wq/ZfIRAb4YOIQt5lL89ory5I6dnyMje32cikJH7jJ6JhYckvYrULLsvl7zgmjpw8zncKy95+HYg2huK84TvvhfajWzGbb1oIUFfqdd0bjxnD6AJlQ/Ybbs7RhSyJ/3306I0zXoOqr0EHVhVS4iy9FZOaBQkwykOhmZVs67c+9J0ONNT7eiX8wFue9NYLVFHNq7afOfggfuXv250j78tFqSH+ytomKYNzrvchbLa7VsC0IMtesYg6oTlEpik51FTJmuE8UjpzC27jAGhOiprmUSl0Zfnb+sd5UsTEBLLDv79V2CWHU2WCXksrLp597fkDUPJTBYCDv4OojDf7vwyR5GOwwDCmsCufx7bLVw8Wr4TXztw96Wshxq2TDDf4L43DreFx3frt8vkWqbHFHI0/1ssO8MBGn0/kRndZyXAtIgmQxtY7DRcdo0UcUw7k=
1212

1313
matrix:
14-
include:
15-
- env: PYGMO_BUILD_TYPE="manylinux64Py38_head" DOCKER_IMAGE="pagmo2/manylinux2010_x86_64_with_deps"
16-
sudo: required
17-
services:
18-
- docker
14+
# include:
15+
# - env: PYGMO_BUILD_TYPE="manylinux64Py38_head" DOCKER_IMAGE="pagmo2/manylinux2010_x86_64_with_deps"
16+
# sudo: required
17+
# services:
18+
# - docker
1919
# - env: PYGMO_BUILD_TYPE="manylinux64Py38_latest" DOCKER_IMAGE="pagmo2/manylinux2010_x86_64_with_deps"
2020
# sudo: required
2121
# services:
2222
# - docker
23-
- env: PYGMO_BUILD_TYPE="manylinux64Py37_head" DOCKER_IMAGE="pagmo2/manylinux2010_x86_64_with_deps"
24-
sudo: required
25-
services:
26-
- docker
23+
# - env: PYGMO_BUILD_TYPE="manylinux64Py37_head" DOCKER_IMAGE="pagmo2/manylinux2010_x86_64_with_deps"
24+
# sudo: required
25+
# services:
26+
# - docker
2727
# - env: PYGMO_BUILD_TYPE="manylinux64Py37_latest" DOCKER_IMAGE="pagmo2/manylinux2010_x86_64_with_deps"
2828
# sudo: required
2929
# services:
3030
# - docker
31-
- env: PYGMO_BUILD_TYPE="manylinux64Py36_head" DOCKER_IMAGE="pagmo2/manylinux2010_x86_64_with_deps"
32-
sudo: required
33-
services:
34-
- docker
31+
# - env: PYGMO_BUILD_TYPE="manylinux64Py36_head" DOCKER_IMAGE="pagmo2/manylinux2010_x86_64_with_deps"
32+
# sudo: required
33+
# services:
34+
# - docker
3535
# - env: PYGMO_BUILD_TYPE="manylinux64Py36_latest" DOCKER_IMAGE="pagmo2/manylinux2010_x86_64_with_deps"
3636
# sudo: required
3737
# services:
3838
# - docker
39+
- env: PYGMO_BUILD_TYPE="ppc64"
40+
os: linux
41+
arch: ppc64le
42+
dist: focal
3943
script:
4044
- if [[ "${PYGMO_BUILD_TYPE}" == manylinux* ]]; then bash tools/travis_manylinux.sh; fi
45+
- if [[ "${PYGMO_BUILD_TYPE}" == ppc64 ]]; then bash tools/travis_ubuntu_ppc64.sh; fi
4146

4247
notifications:
4348
email: false

doc/changelog.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ Changelog
66
2.18.0 (unreleased)
77
-------------------
88

9+
New
10+
~~~
11+
12+
- pygmo now officially supports 64-bit ARM and PowerPC processors
13+
(`#82 <https://github.com/esa/pygmo2/pull/82>`__).
14+
915
Changes
1016
~~~~~~~
1117

tools/circleci_bionic_conda_pagmo_head_37.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ git clone https://github.com/esa/pagmo2.git
2424
cd pagmo2
2525
mkdir build
2626
cd build
27-
cmake ../ -DCMAKE_BUILD_TYPE=Debug -DBoost_NO_BOOST_CMAKE=ON -DPAGMO_WITH_EIGEN3=ON -DPAGMO_WITH_IPOPT=ON -DPAGMO_WITH_NLOPT=ON -DCMAKE_PREFIX_PATH=$deps_dir -DCMAKE_INSTALL_PREFIX=$deps_dir -DPAGMO_ENABLE_IPO=ON
27+
cmake ../ -DCMAKE_BUILD_TYPE=Debug -DBoost_NO_BOOST_CMAKE=ON -DPAGMO_WITH_EIGEN3=ON -DPAGMO_WITH_IPOPT=ON -DPAGMO_WITH_NLOPT=ON -DCMAKE_PREFIX_PATH=$deps_dir -DCMAKE_INSTALL_PREFIX=$deps_dir -DPAGMO_ENABLE_IPO=ON -DPAGMO_INSTALL_LIBDIR=lib
2828
make -j4 install VERBOSE=1
2929
cd ..
3030
cd ..

tools/circleci_bionic_conda_pagmo_head_38.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ git clone https://github.com/esa/pagmo2.git
2424
cd pagmo2
2525
mkdir build
2626
cd build
27-
cmake ../ -DCMAKE_BUILD_TYPE=Debug -DBoost_NO_BOOST_CMAKE=ON -DPAGMO_WITH_EIGEN3=ON -DPAGMO_WITH_IPOPT=ON -DPAGMO_WITH_NLOPT=ON -DCMAKE_PREFIX_PATH=$deps_dir -DCMAKE_INSTALL_PREFIX=$deps_dir -DPAGMO_ENABLE_IPO=ON
27+
cmake ../ -DCMAKE_BUILD_TYPE=Debug -DBoost_NO_BOOST_CMAKE=ON -DPAGMO_WITH_EIGEN3=ON -DPAGMO_WITH_IPOPT=ON -DPAGMO_WITH_NLOPT=ON -DCMAKE_PREFIX_PATH=$deps_dir -DCMAKE_INSTALL_PREFIX=$deps_dir -DPAGMO_ENABLE_IPO=ON -DPAGMO_INSTALL_LIBDIR=lib
2828
make -j4 install VERBOSE=1
2929
cd ..
3030
cd ..

tools/circleci_bionic_conda_pagmo_head_39.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ git clone https://github.com/esa/pagmo2.git
2424
cd pagmo2
2525
mkdir build
2626
cd build
27-
cmake ../ -DCMAKE_BUILD_TYPE=Debug -DBoost_NO_BOOST_CMAKE=ON -DPAGMO_WITH_EIGEN3=ON -DPAGMO_WITH_IPOPT=ON -DPAGMO_WITH_NLOPT=ON -DCMAKE_PREFIX_PATH=$deps_dir -DCMAKE_INSTALL_PREFIX=$deps_dir -DPAGMO_ENABLE_IPO=ON
27+
cmake ../ -DCMAKE_BUILD_TYPE=Debug -DBoost_NO_BOOST_CMAKE=ON -DPAGMO_WITH_EIGEN3=ON -DPAGMO_WITH_IPOPT=ON -DPAGMO_WITH_NLOPT=ON -DCMAKE_PREFIX_PATH=$deps_dir -DCMAKE_INSTALL_PREFIX=$deps_dir -DPAGMO_ENABLE_IPO=ON -DPAGMO_INSTALL_LIBDIR=lib
2828
make -j4 install VERBOSE=1
2929
cd ..
3030
cd ..

tools/circleci_ubuntu_arm64.sh

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env bash
2+
3+
# Echo each command
4+
set -x
5+
6+
# Exit on error.
7+
set -e
8+
9+
# Core deps.
10+
sudo apt-get install wget
11+
12+
# Install conda+deps.
13+
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh -O miniconda.sh
14+
export deps_dir=$HOME/local
15+
export PATH="$HOME/miniconda/bin:$PATH"
16+
bash miniconda.sh -b -p $HOME/miniconda
17+
conda create -y -q -p $deps_dir c-compiler cxx-compiler cmake eigen nlopt boost-cpp tbb tbb-devel python=3.8 numpy cloudpickle networkx dill numba pybind11 scipy
18+
source activate $deps_dir
19+
20+
# Install pagmo.
21+
git clone https://github.com/esa/pagmo2.git
22+
cd pagmo2
23+
mkdir build
24+
cd build
25+
cmake ../ -DCMAKE_BUILD_TYPE=Debug -DBoost_NO_BOOST_CMAKE=ON -DPAGMO_WITH_EIGEN3=ON -DPAGMO_WITH_NLOPT=ON -DCMAKE_PREFIX_PATH=$deps_dir -DCMAKE_INSTALL_PREFIX=$deps_dir -DPAGMO_ENABLE_IPO=ON -DPAGMO_INSTALL_LIBDIR=lib
26+
make -j4 install VERBOSE=1
27+
cd ..
28+
cd ..
29+
30+
# Create the build dir and cd into it.
31+
mkdir build
32+
cd build
33+
34+
# Build pygmo.
35+
cmake ../ -DCMAKE_BUILD_TYPE=Debug -DBoost_NO_BOOST_CMAKE=ON -DCMAKE_PREFIX_PATH=$deps_dir -DCMAKE_INSTALL_PREFIX=$deps_dir -DPYGMO_ENABLE_IPO=ON
36+
make -j2 install VERBOSE=1
37+
cd
38+
39+
# Run the test suite.
40+
python -c "import pygmo; pygmo.test.run_test_suite(1); pygmo.mp_island.shutdown_pool(); pygmo.mp_bfe.shutdown_pool()"
41+
42+
# Run the additional tests.
43+
cd ~/project/tools
44+
python circleci_additional_tests.py
45+
46+
set +e
47+
set +x

tools/travis_ubuntu_ppc64.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/env bash
2+
3+
# Echo each command
4+
set -x
5+
6+
# Exit on error.
7+
set -e
8+
9+
# Core deps.
10+
sudo apt-get install wget
11+
12+
# Install conda+deps.
13+
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-ppc64le.sh -O miniconda.sh
14+
export deps_dir=$HOME/local
15+
export PATH="$HOME/miniconda/bin:$PATH"
16+
bash miniconda.sh -b -p $HOME/miniconda
17+
conda create -y -q -p $deps_dir c-compiler cxx-compiler cmake eigen nlopt boost-cpp tbb tbb-devel python=3.8 numpy cloudpickle networkx dill numba pybind11 scipy
18+
source activate $deps_dir
19+
20+
# Install pagmo.
21+
git clone https://github.com/esa/pagmo2.git
22+
cd pagmo2
23+
mkdir build
24+
cd build
25+
cmake ../ -DCMAKE_BUILD_TYPE=Debug -DBoost_NO_BOOST_CMAKE=ON -DPAGMO_WITH_EIGEN3=ON -DPAGMO_WITH_NLOPT=ON -DCMAKE_PREFIX_PATH=$deps_dir -DCMAKE_INSTALL_PREFIX=$deps_dir -DPAGMO_ENABLE_IPO=ON -DPAGMO_INSTALL_LIBDIR=lib
26+
make -j4 install VERBOSE=1
27+
cd ..
28+
cd ..
29+
30+
# Create the build dir and cd into it.
31+
mkdir build
32+
cd build
33+
34+
# Build pygmo.
35+
cmake ../ -DCMAKE_BUILD_TYPE=Debug -DBoost_NO_BOOST_CMAKE=ON -DCMAKE_PREFIX_PATH=$deps_dir -DCMAKE_INSTALL_PREFIX=$deps_dir -DPYGMO_ENABLE_IPO=ON
36+
make -j2 install VERBOSE=1
37+
cd
38+
39+
# Run the test suite.
40+
python -c "import pygmo; pygmo.test.run_test_suite(1); pygmo.mp_island.shutdown_pool(); pygmo.mp_bfe.shutdown_pool()"
41+
42+
set +e
43+
set +x

0 commit comments

Comments
 (0)