Páginas: Anterior 1 2 3 4 5 6 7 8 ...22 23 24 Siguiente
Páginas: Anterior 1 2 3 4 5 6 7 8 ...22 23 24 Siguiente

Páginas: Anterior 1 2 3 4 5 6 7 8 ...22 23 24 Siguiente

OpenMPI en Ubuntu con Geany

8 09 2010

MPI es una interfaz, API o especificación para el paso de mensajes (síncronos y asíncronos) entre ordenadores para permitir una comunicación. Generalmente es usado en supercomputadores, clusters de computadores y en general sistemas distribuidos ya que no requiere memoria compartida.

Existen muchas implementaciones de MPI y en multitud de lenguajes. Las implementaciones más usadas son las escritas en C y C++.

OpenMPI Logo

OpenMPI Logo

En este artículo usaremos la implementación de software libre OpenMPI escrita en C por un consorcio de acádemicos, investigadores e industrias afines. Esta implementación soporta la versión MPI-2 de 1997 por lo que esta muy capacitada para desarrollos profesionales.

Para instalarla en Ubuntu, en mi caso Ubuntu Maverick 10.10:

1
$ sudo apt-get install libopenmpi-dev openmpi-bin openmpi-doc

Puedes probar un ejemplo simple con el siguiente código:

?Descargar MPI_Hello.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include < stdio.h>
#include < mpi.h>
 
int main(int argc, char** argv)
{
    int myrank, nprocs;
 
    MPI_Init(&argc, &argv);
    MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
    MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
 
    printf("Hello from processor %d of %d\n", myrank, nprocs);
 
    MPI_Finalize();
    return 0;
}

Compilarlo con:

1
$ mpicc MPI_Hello.c -o MPI_Hello

Y ejecutarlo con:

1
$ mpiexec -n 5 MPI_Hello

Obtendrás una salida similar a:

1
2
3
4
5
6
$ mpiexec -n 5 MPI_Hello
Hello from processor 1 of 5
Hello from processor 0 of 5
Hello from processor 2 of 5
Hello from processor 4 of 5
Hello from processor 3 of 5

Obviamente más ejecuciones pueden darte resultados distintos o diferir de este, ya que cada procesador puede ejecutarse en diferentes momentos.

Integrar entorno de desarrollo Geany

Si además deseas integrar un IDE como Geany para hacer el proceso de compilación y ejecución fácil y rápido, puedes seguir los siguientes pasos para poder compilar un programa MPI con Geany:

1. Descargar el archivo de etiquetas C para OpenMPI y copiarlo a ~/.config/geany/tags/

1
2
$ wget http://shakaran.net/blog/wp-content/uploads/openmpi.c.tags
$ cp openmpi.c.tags ~/.config/geany/tags/

Actualización: También puedes generar el fichero con:

1
$ geany -g -P openmpi.c.tags /usr/include/mpi.h

2. Abrir el ejemplo MPI anterior con Geany

3. Establecer las configuraciones de compilación. Para ello, pinchar en el menú “Construir > Establecer comandos de construcción

En compilar poner:

1
mpicc -Wall "%f" -o "%e"

En ejecutar:

1
mpiexec -n 5 "%e"

Debería quedarte algo como en esta imagen (pinchar para ampliar):

Configuraciones de compilacion

Configuraciones de compilacion

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)


Instalar uploadprogress 1.0.1 de Pecl en PHP 5.3 con Centos

6 09 2010

Uploadprogress es un paquete del repositorio Pecl de PHP que sirve para realizar un seguimiento de progresos de la subida de un archivo.

Instalarlo sobre PHP 5.3 en una distribución Centos 5.5 es una tarea tan sencilla como indicar el siguiente comando:

1
# pecl install uploadprogress

Después reinicia Apache con:

1
# service httpd restart

Obviamente para ello requiere tener PECL instalado. Otra forma de instalación es mediante la descarga de fuentes y su compilación, aunque de esta forma es mucho más rápido.

Puedes comprobar si la extensión ha sido correctamente instalada, mirando en el archivo php.ini:

1
2
# cat /usr/local/lib/php.ini | grep uploadprogress
extension="uploadprogress.so"
  • Pagina web de UploadProgress en el repositorio PECL:

http://pecl.php.net/package/uploadprogress/

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)


Solucionar error: N: Ignoring file ‘somefile.list.save’ in directory ‘/etc/apt/sources.list.d/’ as it has an invalid filename extension en Ubuntu Maverick 10.10

29 08 2010

Posiblemente si usas Ubuntu Maverick 10.10, que mientras escribo estas líneas se encuentra en la Alpha 3, te encontrarás con errores similares a este cuando actualizas tus paquetes o repositorios:

1
N: Ignoring file 'loneowais-ppa-maverick.list.save' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension

El error se da en los archivos de PPA en todos los programas que usen apt.

Existe un bug en Launchpad reportado al respecto: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/611925

Aunque dicho error se da por un comportamiento intencional que han añadido los desarrolladores. Como puede verse en el log del binario .deb de apt:

1
2
3
4
5
6
7
apt (0.7.26~exp8) experimental; urgency=low
 
 [ David Kalnischkies ]
...
* apt-pkg/contrib/fileutl.cc:
- show notice about ignored file instead of being always silent
- add a Dir::Ignore-Files-Silently list option to control the notice

Esto ocurre, porque el directorio sources.list.d supuestamente no debe contener archivos con las extensiones .save y .distupgrade.

Probablemente hayan decidido hacer esto, para forzar a siga algún estándar en la forma en la que se guardan los PPA o unificar los diferentes modos que existan.

La cuestión es que para el usuario final, resultan molestos estos mensajes a la hora de actualizar y en mi opinión deberían haber hecho el cambio de forma menos drástica o avisando con tiempo del nuevo formato a utilizar.

Pero por suerte, podemos silenciar o ignorar estos mensajes escribiendo el siguiente comando en el terminal:

1
$ sudo sh -c "echo 'Dir::Ignore-Files-Silently:: \"(.save|.distupgrade)$\";' &gt; /etc/apt/apt.conf.d/99ignoresave"

O también:

1
$ echo "Dir::Ignore-Files-Silently:: \"\.save$\";" | sudo tee /etc/apt/apt.conf.d/99ignoresavefiles

Y si no quieres modificar ningún fichero y solo ignorarlo para la ejecución actual de apt:

1
$ sudo apt-get -o dir::ignore-files-silently::="\.save$" update
VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)


Páginas: Anterior 1 2 3 4 5 6 7 8 ...22 23 24 Siguiente