Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
80f3dd3
realizado lo solicitado para el ejercicio 2
facundoSilveira Oct 1, 2020
f3f8c2f
se agrego la solucion al ejercicio 3
facundoSilveira Oct 2, 2020
1bb0791
added firebase tutorial
SuichiM Oct 12, 2020
239d03e
Merge branch 'unidad_6 firebase tutorial'
SuichiM Oct 12, 2020
39d0893
renamed folder and fixed some stuffs
SuichiM Oct 12, 2020
482ce02
Merge branch 'unidad_6'
SuichiM Oct 12, 2020
23d4dac
added videos guide
SuichiM Oct 13, 2020
7f88a6a
added openmp exercise
SuichiM Oct 27, 2020
8f9e748
added moar descriptions
SuichiM Oct 27, 2020
33e5f2d
exercise 2 and 3
SuichiM Oct 29, 2020
de34053
added exercises 3 y 4
SuichiM Oct 29, 2020
c7c3c9b
fixed ej3
SuichiM Oct 29, 2020
5919ec3
added exercise 6
SuichiM Oct 29, 2020
ea30e9f
improve documentation, and added some validation
SuichiM Oct 30, 2020
7e62318
Merge branch 'unidad_6'
SuichiM Oct 30, 2020
c40f041
typo
SuichiM Oct 30, 2020
4f909c5
partial haskell docs
SuichiM Nov 9, 2020
c6b74b4
added haskell exercises
SuichiM Nov 10, 2020
e6e207a
added some functional stuffs
SuichiM Nov 22, 2020
f5a8ba3
Se eliminan archivos sobrantes
facundoSilveira Dec 10, 2020
a4572d6
Merge pull request #141 from facundoSilveira/tp1_ej3
SuichiM Dec 14, 2020
b60344a
Revert "Solucion ejercecio 3 Silveira Do Santo "
SuichiM Dec 15, 2020
d3e107c
Merge pull request #396 from PYLP-UNaM/revert-141-tp1_ej3
SuichiM Dec 15, 2020
be4938e
Bump color-string from 1.5.4 to 1.6.0 in /unidad_6/firebase
dependabot[bot] Aug 23, 2021
e4a23a2
Bump ws from 7.3.1 to 7.5.3 in /unidad_6/firebase
dependabot[bot] Aug 23, 2021
b11f7e4
Bump ini from 1.3.5 to 1.3.8 in /unidad_6/firebase
dependabot[bot] Aug 23, 2021
3b8c3fc
Bump tar from 4.4.13 to 4.4.19 in /unidad_6/firebase
dependabot[bot] Aug 23, 2021
174d904
Merge pull request #408 from PYLP-UNaM/dependabot/npm_and_yarn/unidad…
SuichiM Aug 23, 2021
b3c75b3
Merge pull request #407 from PYLP-UNaM/dependabot/npm_and_yarn/unidad…
SuichiM Aug 23, 2021
a428a98
Merge pull request #406 from PYLP-UNaM/dependabot/npm_and_yarn/unidad…
SuichiM Aug 23, 2021
e6479af
Merge pull request #405 from PYLP-UNaM/dependabot/npm_and_yarn/unidad…
SuichiM Aug 23, 2021
a20fc28
Update CONTRIBUTORS.MD
SuichiM Sep 28, 2021
265abdf
updated files
SuichiM Aug 29, 2022
27e8408
set specific firebase version
SuichiM Sep 6, 2022
bf11a90
set specific firebase version
SuichiM Sep 6, 2022
e22d19a
updated contributors.md
SuichiM Sep 6, 2022
64b56e3
se soluciona el ejercicio 0 del tp0.
hernanvieira Sep 28, 2021
6952c7f
update Contributors
Matiasss11 Sep 28, 2021
01dbc44
se soluciona el ejercicio 0 del tp0
EnriqueGautoSand Sep 28, 2021
35fab1d
Me agregue a mi como contribuyente
joaquinpotocki Oct 19, 2021
6a25916
added missing author
SuichiM Sep 6, 2022
f1688f1
Merge branch '2022' into main
SuichiM Sep 6, 2022
fc3b68f
document updates and dockerfiles
SuichiM Sep 9, 2022
add39ee
fixes #822
Maia2019 Nov 8, 2022
dc26c4c
fixes #869
Maia2019 Nov 10, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
*.obj
*.lst

**/node_modules/
.vscode
**/node_modules/
.env
14 changes: 12 additions & 2 deletions CONTRIBUTORS.MD
Original file line number Diff line number Diff line change
@@ -1,14 +1,24 @@
# CONTRIBUTORS PYLP

## 2020

- Esteban Martini (@SuichiM)
- German Pautsch (@gpautsch)
- Francisco Martin Nacimiento (@martinnacimiento)
- Santiago Villar (@InahoAZ)
- Zarske Arnold Oscar (@AuxZarske)
- Rodrigo Leonel Uriarte (@rodrigoUriarte)
- Javier Kachuka (@javikachuka)
- Nicolas Sawczuk (@NicoSawczuk)
- Nicolas Sawczuk (@NicoSawczuk)
- John Babi (@charlesbabi)
- Facundo Silveira Do Santo (@facundSilveira)
- Andrea Zakowicz (@Tremoteam)
- Andrea Zakowicz (@Tremoteam)
<<<<<<< HEAD

## 2021

- Hernan Vieira (@hernanvieira)
- Kovalski Matias (@Matiasss11)
- Enrique Gauto Sand (@EnriqueGautoSand)
- Joaquin Potocki (@joaquinpotocki)
- Mariela Kolb (@marielakolb)
8 changes: 8 additions & 0 deletions Dockerfile.firebase
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
FROM php:7.2-apache

# COPY unidad_6 /var/www/html/

# Instalando node
RUN curl --silent --location https://deb.nodesource.com/setup_12.x | bash - \
&& apt-get install --yes nodejs \
&& apt-get install --yes build-essential

RUN npm install -g firebase-tools@8.11.2

USER root
6 changes: 3 additions & 3 deletions Dockerfile.haskell_prolog
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ ENV WEB_DOCUMENT_ROOT=$home_dir
ENV TERM=xterm\
TZ=America/Argentina/Cordoba\
DEBIAN_FRONTEND=noninteractive

WORKDIR $home_dir

RUN apt-get update
Expand All @@ -16,10 +16,10 @@ RUN apt-get install -y \
curl\
hugs\
swi-prolog


# Instalando node
RUN curl --silent --location https://deb.nodesource.com/setup_12.x | bash - \
RUN curl --silent --location https://deb.nodesource.com/setup_16.x | bash - \
&& apt-get install --yes nodejs \
&& apt-get install --yes build-essential

Expand Down
6 changes: 4 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,14 @@ services:
- ./unidad_4:/home
- /home/javascript/node_modules
ports:
- 3000:3000
- 4000:3000
firebase:
build:
context: .
dockerfile: Dockerfile.firebase
volumes:
- ./unidad_6:/var/www/html
ports:
- 3002:80
- 5000:5000
- 9005:9005
- 3001:80
30 changes: 15 additions & 15 deletions docs/lineamientos_entrega.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ Los issues para los trabajos practicos, van a contener un label especial que ser

> ⚠️ El momento de creación de los issues será consensuada con la cátedra para mantener limpio el repositorio en todo momento


## Creacion de issues

> 💡 Para crear un issue debe ir al [repositorio oficial de la catedra](https://github.com/PYLP-UNaM/PYLP). En la pestaña de [Issues](https://github.com/PYLP-UNaM/PYLP/issues). Click en el boton `New issue`.
Expand All @@ -43,7 +42,8 @@ Para ello será necesario que el alumno cree un issue por cada ejercicio plantea
Ejercicio <N> - <Apellido> <1erNombre>#(En caso que el apellido se repita)
```

**Descripcion** *\*opcional*
**Descripcion** _\*opcional_

```
<Enunciado del ejercicio>
```
Expand Down Expand Up @@ -79,19 +79,19 @@ La descripción del issue sera un checklist de los ejercicios del tema correspon

## Creación de branch para la resolucion de ejercicios

La branch creada para resolver un ejercicio siempre debe tener como origen la rama `master`.
La branch creada para resolver un ejercicio siempre debe tener como origen la rama `main`.

Se recomienda enfáticamente nombrar la rama siguiendo la siguiente convencion
Se recomienda nombrar la rama siguiendo la siguiente convencion

```sh
tp<tema>_ej<nro>
tp<tema>_ej<nro>_<apellido>
```

con ello el comando para la creacion de rama quedaría:

``` bash
```bash
# asegurandonos siempre que partimos de master
git checkout -b tp<tema>_ej<nro>
git checkout -b tp<tema>_ej<nro>_<apellido>
```

## Nombres de archivo
Expand All @@ -106,23 +106,23 @@ ejemplo:

## Mensaje de commit

En el mensaje de cada commit se debe expresar con claridad lo realizado, se puede seguir el siguiente ejemplo como formato:
En el mensaje de cada commit se debe completar la siguiente leyenda `fixes #<issue>` donde el issue es el nro de issue asignado por github:

`se soluciona el ejercicio 1 del tp1`.
`fixes #641`.

## Pull request de los ejercicios

Para hacer pull request al repositorio oficial, es decir realizar la entrega de los ejercicios, deben:
Para hacer pull request al repositorio oficial, es decir realizar la entrega de los ejercicios, deben:

- [x] Haber realizado el ejercicio o solucion.
- [x] Haber realizado el commit de la solucion con su mensaje correspondiente.
- [x] Haber hecho push a su repositorio forkeado de la catedra. `git push origin tp1_ej1`.
- [x] Haber hecho push al repositorio de la catedra. `git push origin tp1_ej1`.

Una vez completado la lista de acciones, deben:

1. Ir al repositorio oficial, a la pestaña de `Pull requests` y click en el boton `New pull request`.

2. Seleccionar como destino del Pull Request el repositorio `PYLP-UNaM/PYLP` y la rama `2020` y como origen su repositorio y la brach que posee la solucion del ejercicio.
2. Seleccionar como destino del Pull Request el repositorio `PYLP-UNaM/PYLP` y la rama `2022` y como origen la brach que posee la solucion del ejercicio.

el pull request debera seguir la siguiente convencion:

Expand All @@ -132,7 +132,8 @@ el pull request debera seguir la siguiente convencion:
solucion Ejercicio <N> - <Apellido> <1erNombre>#(En caso que el apellido se repita)
```

**Descripcion** *\*opcional*
**Descripcion** _\*opcional_

```
<Consideraciones relevantes>
```
Expand All @@ -141,5 +142,4 @@ solucion Ejercicio <N> - <Apellido> <1erNombre>#(En caso que el apellido se repi

Es posible que surgan sugerencias o comentarios en los PR a fin de mejorar el proceso de entrega de los ejercicios, por los que deben estar atentos a las devoluciones.

> ⚠️ En ningún caso el alumno debe marcar de manera manual alguna tarea como resuelta o cerrar los issues de manera manual. El cierre de los issues de los ejercicios se realizaran de manera automatica con las integraciones de los PR a la branch correspodiente.

> ⚠️ En ningún caso el alumno debe marcar de manera manual alguna tarea como resuelta o cerrar los issues de manera manual. El cierre de los issues de los ejercicios se realizaran de manera automatica con las integraciones de los PR a la branch correspodiente.
11 changes: 10 additions & 1 deletion docs/lineamientos_video.md
Original file line number Diff line number Diff line change
@@ -1 +1,10 @@
# Lineamientos sobre la producción de los video tutoriales
# Lineamientos sobre la producción de los video tutoriales

- duracion de entre **3 y 9 minutos** segun la extension del tema
- deben iniciar **presentandose**: apellido, nombre, catedra y cohorte
- se debe **expresar de manera clara y concisa el objetivo** *(tema)* del video
- se puede hacer una **breve** explicacion del algoritmo que se va a utilizar
- *opcionalmente se puede contextualizar el tema con la teoria de manera muy breve*
- desarrollar la explicación
- *opcionalmente se debe la ejecucion de la solucion*
- conclusiones sobre el tema y despedida
Binary file removed img/clone.png
Binary file not shown.
Binary file added img/clone_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/ej3_omp_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/ej3_omp_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed img/fork.png
Binary file not shown.
21 changes: 6 additions & 15 deletions unidad_0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,15 @@

_\* recomendacion de la catedra_

## 1. crearse un fork del repositorio y clonar
## 1. clonarse el repositorio

1. Lo primero que deberá hacer es registrarse en github. Para hacerlo puede seguir el siguiente [tutorial](https://www.youtube.com/watch?v=RKXk_nc7icg). _(si ya posee una cuenta puede omitir este paso)_

2. Lo siguiente que debe hacer es crearse un fork del repositorio, para ello ingrese a la siguiente sitio: https://github.com/PYLP-UNaM/PYLP
haga click en el boton fork _(ver imagen)_ y siga las instrucciones.
esto creara una copia del repositorio en su cuenta.
2. Para clonarse el repositorio en su maquina local. debe copiarse la url del repositorio. presionando el boton Code y el boton copiar. _(ver imagen)_

![fork](../img/fork.png)
![clone](../img/clone_1.png)

3. Una vez terminado el fork, ud. tendrá una copia del repositorio en su cuenta, es éste repositorio con el cuál Ud. trabajará de manera local.

4. Para clonarse el repositorio en su maquina local. debe copiarse la url del repositorio. presionando el boton Code y el boton copiar. _(ver imagen)_

![clone](../img/clone.png)

5. una vez copiada la url, en una terminal debe ubicarse en la carpeta donde desea trabajar con el repositorio. y ejecutar el siguiente comando.
3. una vez copiada la url, en una terminal debe ubicarse en la carpeta donde desea trabajar con el repositorio. y ejecutar el siguiente comando.

```sh
# ubicarse en el directorio donde se desea clonar el repositorio
Expand All @@ -36,11 +28,10 @@ cd /home/projects
## git clone <url_copiada>
## url ~ https://github.com/suUsuario/PYLP

git clone https://github.com/SuichiM/PYLP
git clone https://github.com/PYLP-UNaM/PYLP.git
```
### porque usamos fork?

aca una explicación de como se contribuye en el mundo OS 👉 [video](https://www.youtube.com/watch?v=QntLv5BjUr0&feature=youtu.be)
4. Es necesario solicitar al equipo de catedra la adhesion al team de la cohorte correspondiente para tener acceso y poder contribuir con el repositorio.

## 1. Instalar docker ([¿Que es docker?](https://docs.docker.com/engine/))

Expand Down
2 changes: 1 addition & 1 deletion unidad_3/mpi/ejercicio_4/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

Crear un algoritmo que realice el producto escalar de dos vectores donde el tamaño de los vectores es de NP (cantidad de procesos lanzados) por 5.

Para realizar el producto escalar, lo que vamos a tener que hacer, es enviar a cada proceso una porcion de los vectores originales con `MPI_Scatter` *(video 1)*.
Para realizar el producto escalar, lo que vamos a tener que hacer, es enviar a cada proceso una porcion de los vectores originales con `MPI_Scatter`.
Cada proceso ira haciendo el producto de los elementos de los vectores que recibió almacenadolos en una variable `producto`. Luego todos los productos locales se reducirán en el proceso 0 con `MPI_Reduce`.

## Objetivos
Expand Down
68 changes: 68 additions & 0 deletions unidad_3/mpi/ejercicio_4/ejercicio_4_krayeski.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#include "mpi.h"
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
//Variables
int rank, size, total, elementos;

MPI_Init(&argc, &argv);

MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);

elementos = 5;
//5, según la consigna
total = size * elementos;

// vectores
float vector1[total], vector2[total];
float vector1_local[elementos], vector2_local[elementos];

// Variables para la suma de los vectores
float suma_parcial; // Suma parcial por vector
float sumas_parciales[size], suma_total; // Suma parcial que ocupa el proceso Raiz.

//Inicializacion
suma_total = 0;
suma_parcial = 0;

if (rank == 0)
{
for (int i = 0; i < total; i++)
{
vector1[i] = i + 3;
vector2[i] = i + 2;
}
}

// Aplico MPI_Scatter
MPI_Scatter(vector1, elementos, MPI_FLOAT, vector1_local, elementos, MPI_FLOAT, 0, MPI_COMM_WORLD);

// Aplico MPI_Scatter
MPI_Scatter(vector2, elementos, MPI_FLOAT, vector2_local, elementos, MPI_FLOAT, 0, MPI_COMM_WORLD);

// Se realiza el calculo parcial sobre el vector principal
for (int i = 0; i < elementos; i++)
{
suma_parcial = suma_parcial + (vector1_local[i] * vector2_local[i]);
cout << "Proceso: " << rank
<< " vector1: " << vector1_local[i]
<< " vector2: " << vector2_local[i]
<< " resultado parcial: " << suma_parcial << endl;
}

// Se aplica MPI_Reduce sobre la sumatoria
MPI_Reduce(&suma_parcial, &suma_total, 1, MPI_FLOAT, MPI_SUM, 0, MPI_COMM_WORLD);

// Se realiza la suma en el proceso raiz
if (rank == 0)
{
cout << "Suma Total: " << suma_total << endl;
}

MPI_Finalize();

return 0;
}
25 changes: 25 additions & 0 deletions unidad_3/mpi/ejercicio_6/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

# ejercicio 6

## Enunciado

Crear un algoritmo donde el proceso 0 cree y envíe un vector *"Global"* de tamaño NP(cantidad de procesos lanzados) \* 5 a todos procesos mediante `MPI_Bcast`.

Cada proceso va a recibir dicho valores, utilizando la misma variable de origen.

Cada proceso debe ir contabilizando todos los elementos del vector, que sean multiplo del elemento en la posicion `rango` del proceso.

> el proceso 0 debe verificar cuantos elementos son multiplos del elemento en la posicion 0

> el proceso 1 debe verificar cuantos elementos son multiplos del elemento en la posicion 1

> el proceso 2 debe verificar cuantos elementos son multiplos del elemento en la posicion 2

> el proceso n debe verificar cuantos elementos son multiplos del elemento en la posicion n

Luego imprimir el resultado por pantalla y opcionalmente obtener cual es el que mayor multiplos tuvo mediante la instruccion `MPI_Reduce` .

## Objetivos

- Aprender a usar `MPI_Bcast`.
- Aprender a usar `MPI_Reduce` para obtener el maximo.
8 changes: 7 additions & 1 deletion unidad_3/openmp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ La API define únicamente el estándar que hay que seguir para poder utilizar la

## Funciones/Directivas

Las directivas se basan en #pragma directivas definidas en los estándares de C y C++. Los compiladores que admiten la API de OpenMP C y C++ incluirán una opción de línea de comandos que active y permita la interpretación de todas las directivas de compilador de OpenMP.

Cada directiva comienza con #pragma omp , para reducir la posibilidad de conflicto con otras directivas pragma (que no son de OpenMP o de proveedor a OpenMP) con los mismos nombres. El resto de la Directiva sigue las convenciones de los estándares de C y C++ para las directivas de compilador.

`#pragma omp <directiva> [clausulas-comparticion]`

| | | |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| [**pragma omp parallel**](https://lsi.ugr.es/jmantas/ppr/ayuda/omp_ayuda.php?ayuda=omp_directivas) | [**pragma omp single**](https://lsi.ugr.es/jmantas/ppr/ayuda/omp_ayuda.php?ayuda=omp_directivas) | [**pragma omp taskwait**](https://lsi.ugr.es/jmantas/ppr/ayuda/omp_ayuda.php?ayuda=omp_directivas) |
Expand Down Expand Up @@ -52,7 +58,7 @@ debemos usar la opcion `-fopenmp` para indicarle que es un archivo que usa `Open
con la opcion `-o` le damos el nombre que queremos al ejecutable.

```sh
mpicxx -fopenmp <archivo_fuente.cpp> -o <archivo_ejecutable>
g++ -fopenmp <archivo_fuente.cpp> -o <archivo_ejecutable>
```

## Ejecutando los archivos
Expand Down
Loading