o comando “module load” não funciona

8

Estou tentando compilar o "Modelo Global do Clima" com os seguintes comandos.

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

Quando eu os executo, o terminal responde com command not found .

O que estou fazendo de errado? Qual é o caminho certo para fazer isso?

    
por uzair mannan 10.09.2013 / 09:57

5 respostas

17

Apenas para resumir os comentários e respostas anteriores e adicionar um pouco da experiência de instalação em primeira mão :

Você está procurando o comando module fornecido pelo pacote Módulos de Ambiente . É uma ferramenta para modificar o ambiente shell (PATH, mas também aliases, etc.) e comum a muitos clusters multiusuários, como clusters de Computação de Alto Desempenho.

As instruções que você recebeu provavelmente foram de algum cluster de HPC, já que você deseja executar um modelo climático global. Leia mais sobre o Environment Modules no HPC aqui.

Agora, para algo realmente Ubuntu -related: Na verdade, não é muito difícil instalar Módulos de Ambiente no Ubuntu. Eu fiz isso em menos de 10 minutos para o Ubuntu 14.10 e o shell Bash.

Como mencionado em outros posts, você pode instalar os módulos de ambiente dos repositórios (pacote environment-modules ).

Então você executa add.modules . Ele irá colocar algumas linhas em seu arquivo de inicialização, neste caso ~/.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 $*'; }

Você precisa descomentar a última linha e comentar ou excluir o penúltimo. Esta linha define o comando module que você estava procurando. Ele efetivamente executa modulecmd bash mais os argumentos que você fornece.

Tenho a sensação de que essa função não é muito segura porque avalia qualquer coisa que você forneça em seus argumentos. Alguns usuários podem comentar sobre como melhorar isso.

Agora você só precisa criar um diretório contendo o chamado modulefiles e adicioná-lo a $MODULEPATH , por exemplo, com module use /path/to/your/modulefiles . Existem exemplos para modulefiles lá nas interwebs.

Acho isso uma ferramenta muito útil não apenas para clusters multiusuários. Eu o uso para alternar entre diferentes distribuições Python.

    
por j08lue 08.10.2014 / 15:55
5

Para aqueles que "skim" (olhando para você Seth): Esta não é uma pergunta sobre os módulos de KERNEL. É uma questão sobre a manipulação de variáveis de ambiente shell usando uma ferramenta chamada ENIRONMENT-MODULES. Se você estiver familiarizado com os módulos do kernel, perceberá que não há uma ferramenta padrão do kernel (script ou qualquer outro) chamada "módulo". Todas as ferramentas de manipulação de módulo abreviam o módulo como mod (lsmod, insmod, modprobe, etc). E não há nenhum módulo chamado gcc.

Os módulos de ambiente ( link ) são outra ferramenta de ambiente para alternar ambientes de execução no shell. Ele ajuda as pessoas que precisam do Python 2.4 e do Python 2.7 na mesma máquina. Ou ajuda as pessoas a gerenciar compiladores e bibliotecas Intel v. GNU.

Infelizmente, os módulos de ambiente não são um pacote para o Ubuntu 12.04 LTS.

As opções incluem a instalação a partir do código-fonte (siga o link acima), atualizando para o 14.04 LTS ou observando os arquivos deb. Dos três, eu instalaria da fonte. O arquivo deb depende de libtcl8.6 que está na mesma situação, indisponível em 12.04LTS.

    
por Brian 21.04.2014 / 17:10
4

Você provavelmente está tentando usar um pacote de software que não está instalado em sua máquina. É claro que não posso ter certeza, mas meu palpite é que você está tentando usar módulos de ambiente . Se isso estiver correto, você pode instalar os módulos de ambiente dos repositórios padrão do Ubuntu.

Mas esteja ciente de que os módulos de ambiente são um programa bastante antigo. A página inicial registra a última atualização de uma ferramenta auxiliar a partir de 2011, o aviso de direitos autorais não vai além de 1999. Portanto, não há garantia de que este pacote de software funcione perfeitamente com as versões atuais do Ubuntu. Pode, mas você não pode ter certeza.

    
por Henning Kockerbeck 10.09.2013 / 11:21
0

Não é um caso de module load não funcionando , module load não é um comando padrão no Ubuntu.

Se você está tentando carregar um módulo existente, sudo modprobe <modulename> é o comando que você está procurando. E você pode usar rmmod ou modprobe -r para descarregar um módulo.

    
por Oli 10.09.2013 / 10:44
0

adicione isso à primeira linha do seu script. Então o comando do módulo será lido por tsch .

#!/bin/tcsh
    
por Javad Mehrmashhadi 28.09.2017 / 20:30

Tags