Perintah “modul load” tidak berfungsi

12

Saya mencoba mengkompilasi "Model Iklim Global" dengan perintah berikut.

module unload pgi gcc
module load gcc/4.6.3 pgi/11.8

Ketika saya menjalankannya, terminal membalas dengan command not found.

Apa yang saya lakukan salah? Apa cara yang tepat untuk melakukan ini?

uzair mannan
sumber
Bisakah Anda menjelaskan apa "Model Iklim Global" itu? Di mana Anda mendapatkan instruksi itu?
Oli
1
Saya akan memberikan balasan ini dalam komentar tetapi tidak dapat karena kurang reputasi :( Tampaknya environment-modulestidak tersedia dalam 12,04, tetapi mulai 12,10 ke atas: < package.ubuntu.com/search?keywords=environment-modules >
tssch

Jawaban:

25

Hanya untuk meringkas komentar sebelumnya dan jawaban dan menambahkan sedikit tangan pertama pengalaman instalasi:

Anda mencari moduleperintah yang disediakan oleh paket Modul Lingkungan . Ini adalah alat untuk memodifikasi lingkungan shell (PATH tetapi juga alias dll.) Dan umum untuk banyak cluster multi-pengguna seperti cluster Komputasi Kinerja Tinggi.

Instruksi yang Anda dapatkan mungkin dari beberapa kluster HPC, karena Anda ingin menjalankan model iklim global. Baca lebih lanjut tentang Modul Lingkungan di HPC di sini.

Sekarang untuk sesuatu yang benar-benar terkait Ubuntu : Sebenarnya tidak terlalu merepotkan untuk mengatur Modul Lingkungan di bawah Ubuntu. Saya hanya melakukannya dalam waktu kurang dari 10 menit untuk Ubuntu 14.10 dan Bash shell.

Seperti disebutkan dalam posting lain, Anda dapat menginstal Modul Lingkungan dari repo (paket environment-modules).

Lalu kamu lari add.modules. Ini akan menaruh beberapa baris ke file inisialisasi shell Anda, dalam hal ini ~/.bashrc:

case "$0" in
          -sh|sh|*/sh)  modules_shell=sh ;;
       -ksh|ksh|*/ksh)  modules_shell=ksh ;;
       -zsh|zsh|*/zsh)  modules_shell=zsh ;;
    -bash|bash|*/bash)  modules_shell=bash ;;
esac
module() { eval `/usr/Modules/$MODULE_VERSION/bin/modulecmd $modules_shell $*`; }
#module() { eval `/usr/bin/modulecmd $modules_shell $*`; }

Anda harus menghapus tanda komentar pada baris terakhir dan mengomentari atau menghapus yang kedua terakhir. Baris ini mendefinisikan moduleperintah yang Anda cari. Ini berjalan efektif modulecmd bashditambah argumen yang Anda berikan.

Saya merasa bahwa fungsi ini sebenarnya tidak terlalu aman karena mengevaluasi apa pun yang Anda berikan dalam argumennya. Beberapa pengguna mungkin dapat berkomentar tentang cara meningkatkan ini.

Anda sekarang hanya perlu membuat beberapa direktori yang berisi apa yang disebut modulefilesdan menambahkannya $MODULEPATH, misalnya dengan module use /path/to/your/modulefiles. Ada contoh untuk modulefile di luar sana pada jalinan .

Saya menemukan ini alat yang sangat berguna bukan hanya untuk kelompok multi-pengguna. Saya menggunakannya untuk beralih di antara berbagai distribusi Python.

Saya tahu
sumber
1
Saya pikir ini harus menjadi jawaban yang diterima untuk pertanyaan
credondo
contoh file tautan modul sudah mati
muenalan
1
Membutuhkan setiap pengguna untuk menjalankan /usr/share/modules/bin/add.modulestampaknya tidak nyaman. Saya menambahkan ". /Etc/profile.d/modules.sh" ke awal file /etc/bash.bashrc Itu mungkin solusi bagi pengguna yang memiliki bash sebagai shell login mereka. Catatan, ini hanya diperlukan untuk login GUI. SSH-login sudah berfungsi sebelum perubahan. Apa yang Anda pikirkan, apakah ini solusi yang baik atau Anda merekomendasikan sesuatu yang lain?
Erik Sjölund
Saya dapat melihat bahwa paket environment-modules secara historis mengubah metode untuk mendapatkan fungsi 'modules' ke dalam shell Anda. Pada sistem Red Hat yang lebih lama, ada /etc/profile.d/modules.shbahwa saya harus sumber untuk menyediakan fungsi modul (saya dulu rpm -ql environment-modulesmengerti file apa yang tersedia). Di Ubuntu, itu akan dpkg-query -S /usr/share/modules- itu hanya akan membantu Anda memahami apa yang disediakan paket.
qneill
6

Bagi mereka yang "skim" (menatapmu Seth): Ini BUKAN PERTANYAAN TENTANG MODUL KERNEL. Ini pertanyaan tentang memanipulasi variabel lingkungan shell menggunakan alat yang disebut ENIRONMENT-MODULES. Jika Anda sama sekali tidak asing dengan modul kernel, Anda akan menyadari bahwa tidak ada alat kernel standar (skrip atau lainnya) yang bernama "module." Semua alat manipulasi modul menyingkat modul sebagai mod (lsmod, insmod, modprobe, dll). Dan tidak ada modul bernama gcc.

Environment-modules ( http://modules.sourceforge.net/ ) adalah alat lingkungan lain untuk berpindah lingkungan eksekusi di shell. Ini membantu orang yang membutuhkan Python 2.4 dan Python 2.7 pada mesin yang sama. Atau membantu orang mengelola kompiler dan perpustakaan Intel v. GNU.

Sayangnya, environment-modules bukan paket untuk Ubuntu 12.04 LTS.

Opsi termasuk menginstal dari sumber (ikuti tautan di atas), memutakhirkan ke 14,04 LTS, atau melihat file deb. Dari ketiganya, saya akan menginstal dari sumber. File deb tergantung pada libtcl8.6 yang berada dalam kesulitan yang sama, tidak tersedia pada 12.04LTS.

Brian
sumber
4

Anda mungkin mencoba menggunakan paket perangkat lunak yang tidak diinstal pada mesin Anda. Tentu saja saya tidak bisa benar-benar yakin, tetapi dugaan saya adalah Anda mencoba menggunakan modul lingkungan . Jika itu benar, Anda dapat menginstal modul lingkungan dari repositori standar Ubuntu.

Namun perlu diperhatikan bahwa modul lingkungan adalah program yang agak lama. Beranda mencatat pembaruan terakhir dari alat pembantu pada 2011, pemberitahuan hak cipta tidak lebih dari 1999. Jadi tidak ada jaminan bahwa paket perangkat lunak ini bekerja dengan sempurna dengan versi Ubuntu saat ini. Mungkin, tetapi Anda tidak bisa memastikan.

Henning Kockerbeck
sumber
2
Ini sangat merepotkan untuk dipasang, tetapi bekerja sangat baik dan merupakan standar de facto pada kluster multi-pengguna.
Emmet
0

Ini bukan kasus module loadtidak berfungsi , module loadbukan perintah standar di Ubuntu.

Jika Anda mencoba memuat modul yang ada, sudo modprobe <modulename>adalah perintah yang Anda cari. Dan Anda dapat menggunakan rmmodatau modprobe -rmembongkar modul.

Oli
sumber
Oli Saya mendapatkan instruksi ini dari panduan pengguna model iklim global "ECHAM6". Baris 'modul load' yang disebutkan di atas disebutkan dalam manual untuk memuat compiler dari terminal ...
uzair mannan
4
Dia mencoba menggunakan program modul lingkungan (biasanya diinstal pada cluster) yang mengelola variabel lingkungan untuk kompiler yang berbeda, implementasi MPI, dll. Tidak memuat modul kernel.
Emmet
itu benar-benar ada, kami menggunakannya setiap hari di perusahaan kami: P
Bruno Pereira
moduleadalah alat yang digunakan untuk mengubah versi alat dan lib dari satu ke yang lain, seperti virtualenv adalah untuk python, tetapi sebaliknya ia mengubah jalur dan variabel Anda untuk mencerminkan pengaturan lain, misalnya: modul load gcc-4.8 akan memuat gcc-4.8, modul memuat gcc-4.7 akan memuat 4.7, dll
Bruno Pereira
0

cukup tambahkan ini ke baris pertama skrip Anda. Maka perintah modul akan dibaca oleh tsch.

#!/bin/tcsh
Javad Mehrmashhadi
sumber