Descripción de la máquina.

Anuncio
Descripción de la máquina.
• Altix 3700 Bx2.
• 64 procesadores 1600 MHz Intel Itanium 2
Rev. 1 Processor y con una memoria 128
GB.
• ip 147.96.1.107 y dns abaco.sim.ucm.es.
• Linux basado en Redhat Enterprise AS
version 3.0.
1. PROGRAMAS DE CONEXIÓN.
• Conexión remota a través del protocolo
ssh.
– “SSH Secure Shell Client” para una conexión
segura y un icono denominado “SSH Secure
File Transfer Client” para la realización de
FTP seguro.
• El programa Exceed puede actuar como
un servidor de ventanas X.
2. INTRODUCCIÓN A LINUX.
• Un shell es un entorno, para la relación
con el sistema basados en modo texto (a
través de comandos). tcsh, bash, bsh y
ksh son los más habituales.
• Algunas nociones básicas:
– Teclear exactamente, diferenciar mayúsculas
y minúsculas, carácter % para root
(administrador), autorrellenado con Tab,
cambio de directorio…
ALGUNOS COMANDOS SENCILLOS.
• Manual de comandos de Linux: man
– Sintaxis: man <comando>
– q para salir.
•
•
•
•
Cambio de contraseña: passwd
Fecha: date, cal
Uso del terminal: who, whoami
Limpiar la consola: clear
COMANDOS MÁS UTILIZADOS.
• Listado del contenido de directorios: ls
– Este comando admite múltiples opciones (ver
man ls).
– Es posible combinar las acciones.
– Nota: El carácter * representa cualquier
conjunto o secuencia de caracteres. El
carácter ? representa cualquier carácter, pero
sólo uno.
•
•
•
•
•
•
Creación de directorios: mkdir
Borrado de subdirectorios: rmdir
Cambio de directorio: cd
Situación actual: pwd
Copia de ficheros: cp
Traslado y cambio de nombre de fich: mv
– Realiza la misma función que cp pero se
destruye el fichero original y sólo queda el
fichero destino.
• Enlaces a ficheros: ln
– En realidad sólo existe un fichero pero puede
haber varios enlaces o accesos al mismo.
– A diferencia de los comandos cp y mv, este
comando toma más precauciones, ya que
advierte previamente si el nombre nuevo está
ocupado, y en este caso no se ejecuta.
– Los ficheros enlazados a otro se borran como
los ficheros normales.
– El contenido del fichero sólo se borra cuando
se borran todos los enlaces al fichero.
• Borrado de ficheros: rm
– Se recomienda usar siempre el comando -i
(ej. rm –i file 1) para evitar el borrado de
ficheros útiles.
• Características de un fichero: file
• Cambio de modo de los ficheros: chmod
– Los permisos se ven con: ls –l
– Sintaxis: chmod [u,g,o,a] [+/-][r,w,x]
[archivos] (ej. chmod a –r fichero.txt).
– Los permisos de lectura, escritura y ejecución
tienen un significado diferente cuando se
aplican a directorios.
• Espacio ocupado en disco: du, df y quota
VISUALIZACIÓN DE FICHEROS.
• Visualización sin formato: cat
– También permite copiar uno o más ficheros
como apéndice de otro ya existente.
– El carácter > se utiliza para almacenar un
fichero en otro, y >> para añadir al final de un
fichero (ej. cat file1 > file3). Se verá después.
• Cabecera: head
• Visualización con formato: pr
– Está muy en relación con el comando lp (de
salida por impresora). El carácter > crea un
fichero nuevo al original, pero con formato.
BÚSQUEDA DE FICHEROS.
• Búsqueda de ficheros: grep
– Sintaxis: grep 'conjuntocaracteres‘ file
– Las expresiones regulares son una forma de
describir patrones (utilizando caracteres
especiales de Linux) para la búsqueda de
unas determinadas líneas dentro de uno o
más ficheros ASCII
COMPRESIÓN.
• Compresión: tar y gzip
– tar sirve para agrupar varios ficheros en un
solo fichero, mientras que gzip sirve para
comprimir un fichero.
– Es típico emplear tar y gzip de forma
consecutiva, para obtener ficheros con
extensión tar.gz o tgz (similar a un zip de
Windows).
3. REDIRECCIONES Y
TUBERÍAS.
• Redirecciones:
– El operador > de redirección dirige la salda
estándar hacia la salida indicada a
continuación (normalmente un fichero).
– El operador < redirige la entrada estándar
desde un determinado fichero.
– El operador >> redirige la salida estándar
hacia otro fichero, pero en modo append.
• Tuberías:
– El concepto de tubería (pipe), consiste en
“empalmar” la salida estándar de un comando
con la entrada estándar de otro.
– Con el operador de tubería | se pueden
empalmar tantos comandos como se desee.
• Bifurcación o T:
– El operador tee hace que la salida de un
comando, además de redirigirse a un
determinado fichero, se bifurque también
hacia la terminal
4. PROGRAMAS DE
COMANDOS. SCRIPTS.
• Una primera forma de agrupar comandos
la ofrece Linux por medio del carácter: ;
• Es posible agrupar en un fichero distintos
comandos para ejecutarlos con una sola
instrucción posteriormente.
• Para ejecutar este script, puede teclearse
el comando sh fichero_de_comandos, o
bien convertirlo (mediante chmod) para
que sea directamente ejecutable.
• Las órdenes sh fichero_de_comandos y
fichero_de_comandos no son
enteramente equivalentes.
• Para que las variables del shell original
conserven su valor en el nuevo shell, es
necesario preservarlo con el comando
export antes de abrir el nuevo shell.
• Para introducir líneas de comentarios en
un script, basta comenzar dichas líneas
con el carácter #
VARIABLES DE ENTORNO O DEL
SHELL.
• UNIX permite definir variables en un script:
USER=/mnt/mecan/juanto
TERM=hp2392
• Si utilizamos en el script el valor de TERM,
hay que escribir $TERM y se sustituirá por
su valor.
• El comando set muestra las variables de
entorno estándar que Linux tiene definidas
para cada usuario.
COMANDO ECHO.
• El comando echo imprime un determinado
texto en el terminal, es útil en los scripts.
• Cuando el texto contiene alguno de los
caracteres especiales de UNIX ( * ? [ ] >
>> < & ; \ ' ) hay que tratarlos como
caracteres literales y no como
metacaracteres.
– La barra invertida \ anula un metacaracter.
– Las comillas simples ‘’ anulan el significado
de todos los caracteres contenidos en ellas.
– Las comillas dobles “” anulan el significado
de todos los caracteres excepto los
metacaracteres ` \ .
– El carácter \ tiene otros significados,cuando
en un comando echo aparecen los caracteres
\c y \n quiere decir, respectivamente, que no
se cambie de línea y que se salte de línea, al
escribir por la pantalla.
– Cuando en un comando echo aparece el
nombre de otro comando encerrado entre el
carácter ` (p.ej. `date`, `who`, `ls`, ...), el
nombre de dicho comando se sustituye por el
resultado que genera al ejecutarse
interactivamente.
PARÁMETROS DE LOS
PROGRAMAS DE COMANDOS.
• Los scripts pueden recibir como
parámetros un conjunto de una o más
variables. Dentro del script, estas
variables o parámetros se conocen o
identifican con los nombres 0, 1, 2, ..., 9.
La variable 0 representa el propio nombre
del fichero de comandos, y 1, 2, ..., 9 son
los nombres de los parámetros
propiamente dichos.
EJECUCIÓN DE PROGRAMAS
• Ejecución en Background:
– Para recuperar el control del terminal tras el
lanzamiento a ejecución, basta añadir el
carácter & al final del comando de ejecución.
– Para detener definitivamente dicha ejecución
(no se puede detener temporalmente) se
puede utilizar el comando kill
– Para que el programa continúe ejecutándose
aun cuando hayamos terminado la sesión,
hay que utilizar el comando nohup
– nice permite realizar ejecuciones con baja
prioridad
5. GESTOR DE COLAS.
batch1d
Limite CPU 24 horas, 1 semana de ejecución,40
procesadores simultáneos, 8 por usuario. Ejecución en
1 CPU, Cola por defecto.
batch15d
Limite CPU 15 días, 1 mes de ejecución, 40
procesadores simultáneos, 8 por usuario. Ejecución en
1 CPU
batchduro
Limite CPU 2 meses, 4 meses de ejecución, 40
procesadores simultáneos, 8 por usuario. Ejecución en
1 CPU
paralelo
Limite CPU 2 meses, 4 meses de ejecución, 56
procesadores simultáneos, 16 por usuario. Ejecución
hasta en 8 CPU.
TRABAJOS EN UNA COLA
• Envío de trabajos a una cola.
– bsub [-q nom_cola] [trabajo [argumento]]
• Información del estado de colas.
– bqueues [-w | -l [nom_cola]]
• Información del estado de los trabajos.
– bjobs [-w | -l] [-q nom_cola] [-u nom_us |
all]
• Eliminación de un trabajo enviado.
– bkill id
6. COMPILACIÓN.
INTEL FORTRAN IFORT
• Usaremos el comando ifort tanto para
compilar como para cargar programas
realizados en Fortran 77, 90 o 95
respectivamente.
• La sintaxis general del comando es:
ifort [-opciones[args]] ... fichero
[fichero] ... [-opciones[args]]
• Ficheros de entrada, que serán
interpretados según su extensión:
– .f , .for, .ftn, .fpp, .F, .FOR, .FTN ó .FPP :
Fuentes Fortran con formato fijo, son pasados
directamente al compilador.
– .F90 o .f90 : Fuentes Fortran con formato libre,
son pasados directamente al compilador.
– .o : Módulos objeto, serán pasados al
cargador.
– .a : Librería estática u otro fichero lincable.
– .s : Ficheros fuente en lenguaje ensamblador
simbólico.
• Ficheros de salida:
– La ejecución del comando ifort puede
producir:
• Fichero(s) objeto si se especifica la opción -c
• Fichero(s) ejecutable(s) si no se especifica -c
• Listado(s) de la compilación con la opción –V
– Por defecto el nombre de un ejecutable será
a.out
– El de un objeto será el mismo que el del
fuente con extensión .o
– Los ficheros con listados de compilación se
llamarán igual que las fuentes originales con
extensión .l
• Múltiples ficheros e interacción de
opciones:
– -o : Renombra los ficheros de salida.
– El comando ifort admite varios ficheros de
entrada.
• Si se aplican a la vez las opciones -c y -o se crea
un único objeto a partir de los programas fuente.
• Si se indican simultáneamente las opciones -V y -c
se genera un listado por cada fuente de entrada.
Especificando sólo -V se genera un único listado.
• Ejecución y ejemplos:
– Para ejecutar un programa bastará con
teclear el nombre del ejecutable al prompt del
sistema.
– Un ejemplo sencillo sería:
• ifort median.for Æ generaría a.out
• ifort -o median median.for Æ renombra la salida
además del
• ifort -c median.for
ejecutable se guarda
ifort -o median median.o
el objeto
• Optimizaciones básicas
– -O0 Deshabilita todas las optimizaciones. Es útil
cuando se está desarrollando y depurando código
– -O1 Optimiza en espacio. Omite las optimizaciones
que aumentan el tamaño sin mejorar
apreciablemente el rendimiento
– -O2 Optimiza en velocidad. Es el nivel de
optimización por defecto. Mejora apreciablemente el
rendimiento a costa del tamaño del ejecutable
– -O3 Optimización agresiva en velocidad. Incluye las
optimizaciones introducidas con -O2 más otras de
más alto nivel.
INTEL C/C++ ICC
• Usaremos el comando icc tanto para
compilar como para cargar programas
realizados en C
• Para tener una información mas detallada
del uso del compilador y de la sintaxis
existente, teclear man icc.
• La sintaxis general del comando es:
icc [-opciones[args]] ... fichero [fichero] ...
[-opciones[args]]
• Ficheros de entrada, que serán
interpretados según su extensión:
– .c, .C, .i : Fichero de entrada con el código
fuente escrito en C, es pasado directamente
al compilador.
– .cc, .cpp, .cxx, .ii : Fichero de entrada escrito
en C,es pasado directamente al compilador.
– .o: Módulos objeto, serán pasados al
cargador.
– .a: Librería estática u otro fichero lincable.
– .s: Ficheros fuente en lenguaje ensamblador
simbólico.
• Ficheros de salida:
– La ejecución del comando icc puede
producir:
• Fichero(s) objeto si se especifica la opción -c
• Fichero(s) ejecutable(s) si no se especifica -c
• .a : Fichero(s) lenguaje ensamblador simbólico si
se especifica la opción -s.
– Por defecto el nombre de un ejecutable será
a.out
– El de un objeto será el mismo que el del
fuente con extensión .o
• Múltiples ficheros e interacción de
opciones:
– -o : Renombra los ficheros de salida.
– -S : Compila los ficheros fuente especificados
y genera el programa en lenguaje
ensamblador simbólico con el sufijo .s
– El comando icc admite varios ficheros de
entrada.
• Si se aplican a la vez las opciones -c y -o se crea
un único objeto a partir de los diversos programas
fuente. Si no se combinan ambas opciones, se
genera un objeto por cada fuente.
• Ejecución y ejemplos:
– Para ejecutar un programa bastará con
teclear el nombre del ejecutable al prompt del
sistema.
– Un ejemplo sencillo sería:
• icc prueba.c Æ generaría a.out
• icc -o prueba prueba.c Æ renombra la salida
además del
• icc -c prueba.c
ejecutable se guarda
icc prueba.o -o prueba
el objeto
• Optimizaciones básicas
– -O0 Deshabilita todas las optimizaciones. Es útil
cuando se está desarrollando y depurando código
– -O1 Optimiza en espacio. Omite las optimizaciones
que aumentan el tamaño sin mejorar
apreciablemente el rendimiento
– -O2 Optimiza en velocidad. Es el nivel de
optimización por defecto. Mejora apreciablemente el
rendimiento a costa del tamaño del ejecutable
– -O3 Optimización agresiva en velocidad. Incluye las
optimizaciones introducidas con -O2 más otras de
más alto nivel.
COMPILACIÓN Y EJECUCIÓN MPI
• En icc y ifort, si después de los flags y del
codigo fuente ponemos –lmpi
accederemos a las librerías que tienen
implementadas las funciones de mpi.
• Nuestro programa ya compilado, se
ejecuta poniendo
– mpirun -np numprocesos nomejecutable
mpirun -np 4 saludos.out
Descargar