Setup-miniconda: Setup conda step terlalu lama

Dibuat pada 10 Nov 2020  ·  16Komentar  ·  Sumber: conda-incubator/setup-miniconda

Terima kasih telah membuat/mempertahankan Aksi hebat ini!

Tampaknya menyiapkan conda saja membutuhkan waktu lebih lama dari biasanya. Misalnya, lihat log ini , langkah "Siapkan conda". Dibutuhkan 3 setengah menit untuk menyiapkan conda (tidak termasuk instalasi dependensi). Apakah itu yang diharapkan atau saya melakukan sesuatu yang salah?

Terima kasih sekali lagi!

enhancement

Komentar yang paling membantu

Ada _banyak_ lebih banyak potongan bergerak yang muncul sekarang daripada hanya _gunakan apa yang ada di disk_ vs _dapatkan penginstal dari URL dengan skema yang telah dapat kami prediksi selama setengah dekade_, dan perilaku kode saat ini w/r/t ke mamba sulit untuk dipikirkan.

Saya berani bertaruh, jika Anda memberikan mamba-version , itu _still_ akan mencoba menginstal mamba dari conda-forge , meskipun sudah ada di sana, dan _still_ gunakan conda untuk semuanya _kecuali_ pemecahan lingkungan (misalnya conda config ). Ini akan mengalahkan sebagian besar keuntungan karena sudah memilikinya di disk, pasca-instaler. Karena penginstal dengan mamba tidak ada sampai 13 jam yang lalu, ini bukan masalah... pemikiran saya adalah kita mungkin akan membutuhkan sesuatu seperti conda-exe: mamba jika Anda _know_ sudah diinstal, meskipun _is_ tersedia, Anda mungkin tidak ingin menggunakannya, dan besok mungkin ada The Next Tool ( lambada , tarantala ) dari The Next Installer.

Bagaimanapun, saya merasa memperbaiki beberapa masalah ini memerlukan beberapa restrukturisasi yang cukup drastis... pada #107 (yang menjadi #108, #109, ... menunggu tinjauan) saya melakukan upaya terbaik untuk menyiapkan kami untuk The Next X, dimana X dapat berupa satu/dua file PR. Mudah-mudahan kita bisa sampai di mana kita bisa mulai menambahkan fitur dan mengatasi kinerja, tapi saya khawatir tidak mengatasi utang teknis saat ini terlebih dahulu akan memperburuk situasi.

Semua 16 komentar

Hai @ma-sadeghi, terima kasih atas kata-kata baik dan telah menggunakan aksinya :)

Tampaknya menyiapkan conda saja membutuhkan waktu lebih lama dari biasanya.

Apakah ini berubah di versi yang lebih baru? Kapan Anda memperhatikan mulai memperhatikan ini?

Hanya ingin tahu sehingga kami dapat menunjukkan potensi masalah apa pun.


@conda-incubator/setup-miniconda-team apakah Anda melihat sesuatu yang mirip seperti yang dijelaskan?

Masalah yang sama untuk saya menggunakan mamba (tanpa menginstal deps saya selama aksi) dan dengan versi v2 terbaru.

@bollwyvl saya bisa menggunakan debugging tangan ini

Jika ini membantu (saya tidak dapat membagikan log):

    steps:
      - name: Checkout the code
        uses: actions/checkout<strong i="6">@v2</strong>

      - name: Cache conda
        uses: actions/cache<strong i="7">@v1</strong>
        env:
          CACHE_NUMBER: 2
        with:
          path: ~/conda_pkgs_dir
          key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}

      - name: Setup conda
        uses: conda-incubator/setup-miniconda<strong i="8">@v2</strong>
        with:
          mamba-version: "*"
          channels: conda-forge,defaults
          channel-priority: true
          use-only-tar-bz2: true

Terima kasih @hadim untuk contohnya. Akan menambahkan PR untuk memeriksa perubahan yang memperkenalkan regresi.

Hai @ma-sadeghi, terima kasih atas kata-kata baik dan telah menggunakan aksinya :)

Tampaknya menyiapkan conda saja membutuhkan waktu lebih lama dari biasanya.

Apakah ini berubah di versi yang lebih baru? Kapan Anda memperhatikan mulai memperhatikan ini?

Hanya ingin tahu sehingga kami dapat menunjukkan potensi masalah apa pun.

@conda-incubator/setup-miniconda-team apakah Anda melihat sesuatu yang mirip seperti yang dijelaskan?

Saya hampir yakin bahwa dulunya jauh lebih cepat saat pertama kali saya menggunakan Action ini, dari atas kepala saya, mungkin butuh 1 menit atau lebih untuk menyiapkan conda, sekarang jam 3:30 menit. Proyek kami bersifat publik, dan sudah lama sejak kami menggunakan Tindakan ini, jadi silakan periksa log kami jika itu membantu men-debug masalah: https://github.com/PMEAL/OpenPNM/actions

Dari log yang ditautkan:

Tue, 10 Nov 2020 21:09:23 GMT /usr/share/miniconda/condabin/conda update conda
Tue, 10 Nov 2020 21:09:54 GMT Collecting package metadata (repodata.json): ...working... done
Tue, 10 Nov 2020 21:10:07 GMT Solving environment: ...working... done
Tue, 10 Nov 2020 21:11:56 GMT
Tue, 10 Nov 2020 21:11:56 GMT ## Package Plan ##

Jadi kami memiliki, agak tidak ilmiah:

  • 26 detik untuk mendapatkan repodata
  • 135 detik melakukan penyelesaian untuk memperbarui conda

Satu-satunya hal yang dapat saya pikirkan adalah conda-forge ditambahkan, yang menempatkan solver di over-drive dengan paket 10k+ tambahan (dan semua versinya).

Beberapa opsi, di luar kepala saya:

  • di repomu...

    • atur auto-update-conda ke false

    • Anda akan mendapatkan apa yang Anda dapatkan, tetapi Anda _biasanya_ akan baik-baik saja

    • hasilkan/periksa spesifikasi eksplisit dengan conda-lock

    • gunakan penginstal khusus

    • ya, unduhan mungkin memakan waktu lebih lama, tetapi pemecahnya tidak akan dipanggil

    • Anda dapat/harus men-cache ini juga, tetapi mengambil satu dari github akan lebih cepat daripada pergi ke internet

  • di _ini_ repo..

    • tambahkan opsi tindakan baru, yang hanya akan menarik dari pilihan saluran terbatas, misalnya conda-update-channels: defaults

    • tambahkan beberapa ::group::Boring stuff ::endgroup:: output log sehingga siklus hidup tingkat atas dari perintah yang dijalankan tindakan ini lebih mudah dilacak (saya harus membersihkan panda saya untuk melakukan beberapa hal pengaturan waktu)

    • belum mencoba dalam kemarahan ... itu _mungkin_

    • menawarkan pengaturan micromaba (sekali lagi, menyimpan beberapa pemecahan) https://github.com/conda-incubator/setup-miniconda/issues/75#issuecomment -698024879

Untuk apa nilainya, sebagian besar waktu dihabiskan untuk menginstal mamba:

image

Konfigurasi terkait:

      - name: Cache conda
        uses: actions/cache<strong i="9">@v2</strong>
        env:
          CACHE_NUMBER: 3
        with:
          path: ~/conda_pkgs_dir
          key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}

      - name: Setup conda
        uses: conda-incubator/setup-miniconda<strong i="10">@v2</strong>
        with:
          python-version: 3.7
          mamba-version: "*"
          channels: conda-forge,defaults
          channel-priority: true
          use-only-tar-bz2: true
          activate-environment: nova

Apakah mungkin menggunakan sesuatu seperti micromamba alih-alih miniconda atau miniforge?

Melihat detail, langkah penyelesaiannya adalah yang membutuhkan 99% waktu.

Jika masalah ini diatasi, rute miniforge akan menyediakan ini secara default :D

Saya mengonfirmasi bahwa pemasang MambaForge yang baru dirilis membuat CI lebih cepat:

- name: Setup conda
  uses: conda-incubator/setup-miniconda<strong i="6">@v2</strong>
  with:
    installer-url: https://github.com/conda-forge/miniforge/releases/download/4.9.2-2/Mambaforge-Linux-x86_64.sh
    channel-priority: true
    use-only-tar-bz2: true
    activate-environment: my-env

- name: Anaconda Login
  run: |
    # Bypass the installation of anaconda-client
    TOKEN_DIR="$HOME/.config/binstar"
    TOKEN_PATH="$TOKEN_DIR/https%3A%2F%2Fapi.anaconda.org.token"
    mkdir -p $TOKEN_DIR
    echo -e "${ANACONDA_USER_TOKEN}\c" > $TOKEN_PATH

- name: Install Dependencies
  run: mamba env update -f env.yml

(cuplikan juga menyertakan cara untuk masuk ke anaconda tanpa perlu menginstal anaconda-client . Bisa membantu untuk beberapa orang di sini.)

Bagaimana cara bermain dengan mamba-version ? Apakah itu diperlukan? Apakah perlu pemeriksaan apakah mamba ada sudah ada?

Pertanyaan yang bagus dan saya sebenarnya tidak tahu. Pemasang baru mengirimkan mamba secara default dan saya menggunakan langsung tanpa mamba-version .

Saya harus login terlebih dahulu ke anaconda (lihat cuplikan) jadi saya tidak bergantung pada setup-conda untuk menginstal env saya.

Saya kira jika Anda ingin menggunakan setup-conda untuk menginstal file env, setup-conda harus dimodifikasi untuk memang memeriksa mamba dan memotong instalasinya jika ada.

Mungkin seseorang dari @conda-incubator/setup-miniconda-team bisa mengkonfirmasi atau tidak?

Ada _banyak_ lebih banyak potongan bergerak yang muncul sekarang daripada hanya _gunakan apa yang ada di disk_ vs _dapatkan penginstal dari URL dengan skema yang telah dapat kami prediksi selama setengah dekade_, dan perilaku kode saat ini w/r/t ke mamba sulit untuk dipikirkan.

Saya berani bertaruh, jika Anda memberikan mamba-version , itu _still_ akan mencoba menginstal mamba dari conda-forge , meskipun sudah ada di sana, dan _still_ gunakan conda untuk semuanya _kecuali_ pemecahan lingkungan (misalnya conda config ). Ini akan mengalahkan sebagian besar keuntungan karena sudah memilikinya di disk, pasca-instaler. Karena penginstal dengan mamba tidak ada sampai 13 jam yang lalu, ini bukan masalah... pemikiran saya adalah kita mungkin akan membutuhkan sesuatu seperti conda-exe: mamba jika Anda _know_ sudah diinstal, meskipun _is_ tersedia, Anda mungkin tidak ingin menggunakannya, dan besok mungkin ada The Next Tool ( lambada , tarantala ) dari The Next Installer.

Bagaimanapun, saya merasa memperbaiki beberapa masalah ini memerlukan beberapa restrukturisasi yang cukup drastis... pada #107 (yang menjadi #108, #109, ... menunggu tinjauan) saya melakukan upaya terbaik untuk menyiapkan kami untuk The Next X, dimana X dapat berupa satu/dua file PR. Mudah-mudahan kita bisa sampai di mana kita bisa mulai menambahkan fitur dan mengatasi kinerja, tapi saya khawatir tidak mengatasi utang teknis saat ini terlebih dahulu akan memperburuk situasi.

conda-incubator/setup-miniconda@master sekarang (untuk sementara) mendukung kombinasi dari:

miniforge-variable: Mambaforge
use-mamba: true

Yang sebagian besar harus menjawab email di sini ... sejauh instalasi conda+python+mamba lengkap dapat. Micromamba memiliki banyak pembaruan baru-baru ini, tetapi saya masih belum dapat mengevaluasi apakah kami ingin mendukung/mengujinya ke tingkat yang sama dengan penyedia lain, namun ...

Apakah halaman ini membantu?
0 / 5 - 0 peringkat