質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.35%

AWS EC2へのhorovodのインストールに伴うgccエラーの解決方法

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 575

bd2017it

score 4

前提・実現したいこと

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%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る