miércoles, 21 de octubre de 2015
Bucles basicos
Las estructuras alternativas permiten bifurcar el flujo del programa en función de una expresión lógica. Existen tres tipos de extructuras alternativas: simple, doble y múltiple
Alternativa simple y doble.
Una estructura alternativa simple es aquella que permite evaluar una expresión lógica y en función de dicha evaluación ejecutar una acción o no ejecutarla.
Esta estructura se puede de presentar de 2 maneras:
If (simple)
If – else (doble)
If – elseif – elseif (multiple)
Este codigo nos informa cuando una variable es mayor que 2:
<?php
$a=5;
if ($a > 2)
echo ''.$a.' Es mayor que 2'';
?>
Este codigo nos informa si una variable es mayor o menor o igual a 2:
<?php
$a=5;
if ($a > 2)
{
echo ''.$a.' Es mayor que 2'';
}
else
{
echo ''.$a.' Es menor o igual que 2'';
}
?>
Alternativa múltiple.
Otro caso seria que tuviesemos varias partes, a esto se le denimina alternativa multive ya que tenemos varios casos:
<?php
$a=7;
if ($a < 5)
{
echo ''Suspenso'';
}
elseif (a>5)
{
echo '' Notable';
}
elseif (a==5)
{
echo ''Aprobrado'';
}
?>
Definimos los campos que queremos dividir, es decir queremos dividir la posible nota de un alumno en tres partes:
- De 0 a 5 → Suspenso
- Un 5 → Aprobado
- De 5 a 10 → Notable
Esto seria menos de 5 suspenso, 5 aprobado y más de 5 notable. En nuestro bucle tras recoger la variable de la nota realizara una unica alternativa y por lo tanto solo nos mostrará en pantalla uno de los casos.
Ciclo precondición.
Es aquel que evalúa la condición al principio y luego ejecuta las acciones. El caso más representativo es el while, su propósito es repetir un bloque de código mientras una condición se mantenga verdadera.
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i=0;
while(i<=20)
{
printf(“Soy la variable i, mi valor en esta iteracion es: %d\n”,i);
i++;
}
system(“pause”);
}
Empezamos con una variable inicializada a 0, por lo tanto cumple la condicion del while y entra al ciclo, una vez dentro se muestra el valor de dicha variable (i) y se le incrementa una unidad, este bucle se repetirá hasta que se deje de cumplir la condición que sera cuando (i) tome el valor 21, momento en el que se dejará de cumplir la condición y no se realizara mas el bucle.
Ciclo PARA.
También denominado bucle FOR nos permite repetir un número determinado de veces el bluce que tiene la siguente estructura.
for (variable, de x hasta n, incremento de variable)
un ejemplo:
<?php
for ($i=0; $i<=10; $i++)
{
echo $i;
}
?>
El bucle for tiene 3 condicomes Inicializacion; condicion; incremento
Iniciamos la variable a 0 en este caso, y realizaremos el blucle 11 veces, hasta que el valor de i sea 10 (empieza en 0), y en cada ciclo incrementamos en 1 la variable (i), mediante la condición controlamos el numero de veces que realizamos el bucle.
Ciclo postcondición.
Es aquel que evalúa la condición al final, es decir, se ejecutan las acciones y luego se comprueba el resultado y se seguira repitiendo la acción hasta que deje de cumplirse la condición.
Los bucles do-while son muy similares a los bucles while, excepto que la expresión verdadera es verificada al final de cada iteración en lugar que al principio, esto hace que al menos se ejecute el bucle una vez, cosa que no ocurre con el while
<?php
$i=0;
do
{
echo $i;
}
while ($i =0 )
Este bluce imprime el valor de la variable (i), siempre que este sea = 0 y como no modificamos la variable, se convierte en un bucle infinito.
Ciclo "ITERAR" (la condición está en medio).
La condición se encuentra en medio de blucle, ni al princpio ni al final, y cuando se cumple esta condición se deja de ejecutar el bucle.
<?php
$a=0;
while (a<=10)
{
if ($a==7)
{
break;
}
echo "$a";
$a++;
}
?>
Mientras que la variable sea menor que 10 imprime la variable a y la incrementa en uno, el bucle se repite hasta que a es igual a 7 en cuyo caso entra al condifional con “break“ el cual detenie la ejecución del bucle.
Contadores y Acumuladores (contad lo que son).
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o acción.
Un acumulador es una variable que suma sobre sí misma un conjunto de valores para de esta manera tener la suma de todos ellos en una sola variable.
La principal diferencia entre un contador y un acumulador es que mientras el primero va aumentando de uno en uno, el acumulador va aumentando en una cantidad variable.
Aqui un ejemplo:
<?php
$a=0;
$contador==;
while($a<=20)
{
echo “Soy la variable i, mi valor en esta iteracion es: $a“;
$a= $a+2;
$contador ++;
}
Queremos contar un numero de veces que se requite el bucle, para ello usamos el contador (que se incrementa un unidad por cada ciclo) mientras que vamos sumadole 2 a la variable, que actua de acumulador :
* La suma de 2 es un numero elejido exclusivamente para mostrarlo como ejemplo, se puede incrementar tanto como deseemos.
Mientra que $a:
1º Ciclo $a=0 +2
$Contador = 0 +1
2º Ciclo $a=2+2
$Contador = 1 +1
3º Ciclo $a= 4+2
$Contador = 2 +1
4º Ciclo $a= 6+2
$Contador = 3 +1
5º Ciclo $a=8 +2
$Contador = 4 +1
6º Ciclo $a=10+2
$Contador = 5 +1
7º Ciclo $a= 12+2
$Contador = 6 +1
8º Ciclo $a= 14+2
$Contador = 7 +1
9º Ciclo $a= 16+2
$Contador = 8 +1
10º Ciclo $a= 18+2
$Contador = 9 +1
11º Ciclo $a= 20+2
$Contador = 10 +1
y asi sucesivamente hasta que se cumpla la condicion. Una vez se cumple que $a supera el valor 20 se termina la ejecucion del bucle y nuestro contador.
miércoles, 23 de septiembre de 2015
El CPD más potente de España
Características
Mare Nostrum
('mar nuestro' en latín) es el nombre que los romanos usaban para nombrar al
mar Mediterráneo. Fue elegido no sólo por el lugar sino también para
representar la gran potencia de este recurso informático.
Foto 1.- CPD Mare nostrum
Es el supercomputador más potente de España, y uno
de los más potentes de Europa. Actualmente ocupa la posición 77 en la lista
Top500. Se encuentra situado en el Centro Nacional de Supercomputación en
Barcelona y es considerado uno de los ordenadores más potentes del mundo.
El MareNostrum comenzó a funcionar el 12 de abril de
2005 y desde entonces se ha ampliado notablemente. Actualmente la capacidad de
cálculo del superordenador alcanza los 110 billones de operaciones por segundo
(1,1 PetaFLOPS). Con 48.896 procesadores Intel Xeon de 64 bits a 2,6 GHz
dispone de un total de 2 Petabytes (PiB) de capacidad de almacenamiento y 95,5 TiB
de memoria. Como sistema operativo utiliza la distribución SuSe de Linux.
Se encuentra en el interior de un cubo de cristal de 9 x 18 x 5 metros construido con más de 19 toneladas de cristal y 26 de hierro. El supercomputador ocupa una instalación de 170 metros cuadrados y pesa 40 000 kg. Esta cúpula ayuda a la refrigeración de los equipos.
Foto 2.- Racks en la jaula de refrigeración
Actualizaciones
Ha recibido dos grandes actualizaciones. La primera,
en el 2006, se cambió los blades IBM por otros con el doble de procesadores
doblando la capacidad de cómputo. La segunda gran actualización en 2012 la cual
conforma el actual MareNostrum, supuso un cambio completo ya que se pasó de
usar nodos con procesadores IBM Power interconectados con una red Myrinet a
nodos con procesadores Intel y red Infiniband.
* Myrinet es una red de interconexión de clusters
de altas prestaciones. Físicamente consiste en dos cables de fibra óptica, conectados
con un único conector. La interconexión se suele realizar mediante conmutadores
y encaminadores.
* InfiniBand es un bus de comunicaciones
serie de alta velocidad, baja latencia y de baja sobrecarga de CPU, diseñado
tanto para conexiones internas como externas.
MareNostrum I
Fabricado en
Madrid e instalado en una jaula de cristal dentro de una capilla en el Campus
Nord de la Universidad Politécnica de Cataluña. Contaba con 163 armarios (racks) y
9 TiB de memoria RAM. El sistema de archivos distribuido tenía una capacidad de
128 TiB y con red Myrinet.
MareNostrum II
En 2011 estaba constituido por un total de 44 racks. Disponía de 2560 nodos IBM JS21 con procesadores de doble núcleo IBM a una velocidad de reloj de 2,3 GHz y en total resulta una capacidad de cálculo de 63,83 teraflops con picos de 94,21 teraflops. En cuanto al sistema de memoria del ordenador, cuenta con 20 TiB de memoria principal y 390 terabytes de almacenamiento en red y otros 90 terabytes de almacenamiento local. Los nodos del ordenador se comunican entre sí a través de una red Myrinet de baja latencia.
MareNostrum III
En agosto de 2012 recibió una actualización en la que se cambiaron los nodos IBM y la red Myrinet por nodos IBM con procesadores Xeon E5 2670 Intel Sandy Bridge. 6.112 procesadores con 95,5 TB de memoria principal (RAM) y 2 PB de almacenamiento. Cada procesador dispone de 8 núcleos, alcanzando una cifra total de 48896 núcleos. La nueva red instalada es una combinación de Infiniband FDR10 con Gigabit Ethernet para el acceso a disco.
En mayo-junio de 2014 se pusieron a disposición un total de 42 nuevos nodos experimentales para computación heterogénea. Se componen de dos procesadores Intel Xeon, y memoria a 64 GB y además llevan dos Intel Xeon Phi 5110 P junto con 84 tarjetas aceleradoras y 2,6 TB más de memoria RAM.
Foto 3.- Armarios con CPU
Para más información aquí dejo un enlace a una presentación
de El Mundo con un reportaje fotográfico más detallado.
Suscribirse a:
Entradas (Atom)