AWS EC2へのhorovodのインストールに伴うgccエラーの解決方法
受付中
回答 0
投稿
- 評価
- クリップ 0
- VIEW 575
前提・実現したいこと
AWSのEC2
Amazon Linux2 p2.xlargeに
horovodをインストールしたい
発生している問題・エラーメッセージ
ERROR: Command errored out with exit status 1:
command: /home/ec2-user/.pyenv/versions/3.5.1/bin/python3.5 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-pmak6td4/horovod/setup.py'"'"'; __file__='"'"'/tmp/pip-install-pmak6td4/horovod/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-b2j3r9ug/install-record.txt --single-version-externally-managed --compile
cwd: /tmp/pip-install-pmak6td4/horovod/
Complete output (163 lines):
running install
running build
running build_py
...中略...
copying horovod/spark/task/mpirun_exec_fn.py -> build/lib.linux-x86_64-3.5/horovod/spark/task
copying horovod/spark/task/task_service.py -> build/lib.linux-x86_64-3.5/horovod/spark/task
copying horovod/spark/task/__init__.py -> build/lib.linux-x86_64-3.5/horovod/spark/task
running build_ext
gcc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -std=c++11 -fPIC -O2 -Wall -I/home/ec2-user/.pyenv/versions/3.5.1/include/python3.5m -c build/temp.linux-x86_64-3.5/test_compile/test_cpp_flags.cc -o build/temp.linux-x86_64-3.5/test_compile/test_cpp_flags.o
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
gcc -pthread -shared -L/home/ec2-user/.pyenv/versions/3.5.1/lib build/temp.linux-x86_64-3.5/test_compile/test_cpp_flags.o -o build/temp.linux-x86_64-3.5/test_compile/test_cpp_flags.so
gcc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ec2-user/.pyenv/versions/3.5.1/include/python3.5m -c build/temp.linux-x86_64-3.5/test_compile/test_link_flags.cc -o build/temp.linux-x86_64-3.5/test_compile/test_link_flags.o
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
gcc -pthread -shared -L/home/ec2-user/.pyenv/versions/3.5.1/lib -Wl,--version-script=horovod.lds build/temp.linux-x86_64-3.5/test_compile/test_link_flags.o -o build/temp.linux-x86_64-3.5/test_compile/test_link_flags.so
INFO: Cannot find CMake, will skip compiling Horovod with Gloo.
Traceback (most recent call last):
File "/tmp/pip-install-pmak6td4/horovod/setup.py", line 335, in get_mpi_flags
shlex.split(show_command), universal_newlines=True).strip()
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/subprocess.py", line 629, in check_output
**kwargs).stdout
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/subprocess.py", line 696, in run
with Popen(*popenargs, **kwargs) as process:
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/subprocess.py", line 950, in __init__
restore_signals, start_new_session)
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/subprocess.py", line 1544, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'mpicxx'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/tmp/pip-install-pmak6td4/horovod/setup.py", line 563, in get_common_options
mpi_flags = get_mpi_flags()
File "/tmp/pip-install-pmak6td4/horovod/setup.py", line 348, in get_mpi_flags
'%s' % (show_command, traceback.format_exc()))
distutils.errors.DistutilsPlatformError: mpicxx -show failed (see error below), is MPI in $PATH?
Note: If your version of MPI has a custom command to show compilation flags, please specify it with the HOROVOD_MPICXX_SHOW environment variable.
Traceback (most recent call last):
File "/tmp/pip-install-pmak6td4/horovod/setup.py", line 335, in get_mpi_flags
shlex.split(show_command), universal_newlines=True).strip()
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/subprocess.py", line 629, in check_output
**kwargs).stdout
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/subprocess.py", line 696, in run
with Popen(*popenargs, **kwargs) as process:
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/subprocess.py", line 950, in __init__
restore_signals, start_new_session)
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/subprocess.py", line 1544, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'mpicxx'
INFO: Cannot find MPI compilation flags, will skip compiling with MPI.
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-pmak6td4/horovod/setup.py", line 1449, in <module>
scripts=['bin/horovodrun'])
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/distutils/core.py", line 148, in setup
dist.run_commands()
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/site-packages/setuptools/command/install.py", line 61, in run
return orig.install.run(self)
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/distutils/command/install.py", line 539, in run
self.run_command('build')
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/site-packages/setuptools/command/build_ext.py", line 49, in run
_build_ext.run(self)
File "/home/ec2-user/.pyenv/versions/3.5.1/lib/python3.5/distutils/command/build_ext.py", line 338, in run
self.build_extensions()
File "/tmp/pip-install-pmak6td4/horovod/setup.py", line 1366, in build_extensions
options = get_common_options(self)
File "/tmp/pip-install-pmak6td4/horovod/setup.py", line 576, in get_common_options
raise RuntimeError('One of Gloo or MPI are required for Horovod to run. Check the logs above for more info.')
RuntimeError: One of Gloo or MPI are required for Horovod to run. Check the logs above for more info.
----------------------------------------
ERROR: Command errored out with exit status 1: /home/ec2-user/.pyenv/versions/3.5.1/bin/python3.5 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-pmak6td4/horovod/setup.py'"'"'; __file__='"'"'/tmp/pip-install-pmak6td4/horovod/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-b2j3r9ug/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.
該当のソースコード
SSHでログインし、以下のコードを入力しました
sudo yum install git -y
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel -y
pyenv install 3.5.1
pyenv global 3.5.1
pyenv rehash
pip3 install horovod
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
まだ回答がついていません
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる