{ "cells": [ { "cell_type": "markdown", "id": "5da1b555-956f-4a4f-b414-411fc615a580", "metadata": {}, "source": [ "## How to take advantage of the computational cluster?" ] }, { "cell_type": "markdown", "id": "803d1298-297e-4e90-9dd3-8e1b40120d71", "metadata": {}, "source": [ "The cluster offers storage, cores, memory and convenience." ] }, { "cell_type": "markdown", "id": "7c384098-775e-456e-bf55-885d0370b9bd", "metadata": {}, "source": [ "### Using the Cores - Multiprocessing" ] }, { "cell_type": "markdown", "id": "55893669-5d7f-43e4-af48-3399483fbcd6", "metadata": {}, "source": [ "#### Prelude" ] }, { "cell_type": "markdown", "id": "b87c9985-8441-4b7c-bb32-8781c343e887", "metadata": {}, "source": [ "Before going into the multiprocessing I would like to look a little bit into a few tips for efficient programming." ] }, { "cell_type": "markdown", "id": "3c3cb5db-4e12-403e-a18a-77f5a7c1eb1a", "metadata": {}, "source": [ "So let's assume that we want to make a calculation for each row in a dataset:" ] }, { "cell_type": "code", "execution_count": 152, "id": "c7b6ad3e-ca8b-4a9e-ad92-790ce61f518e", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 153, "id": "697afa2f-5a26-4063-a094-85a68dda7cc8", "metadata": {}, "outputs": [], "source": [ "df0 = pd.read_csv(\"files/infl_unemp.csv\").dropna().reset_index(drop=True)\n", "df = df0.dropna()" ] }, { "cell_type": "code", "execution_count": 154, "id": "520ea925-75b1-4cf5-8ba0-af118598c91e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | Unnamed: 0 | \n", "country | \n", "date | \n", "year | \n", "month | \n", "hicp | \n", "unemp | \n", "first_year | \n", "inflation | \n", "lag_inflation | \n", "weights | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "48 | \n", "IE | \n", "2022M02 | \n", "2022 | \n", "2 | \n", "107.10 | \n", "4.8 | \n", "1996 | \n", "-2.20 | \n", "-1.00 | \n", "0.235249 | \n", "
| 1 | \n", "64 | \n", "AT | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "113.93 | \n", "4.8 | \n", "1996 | \n", "-1.47 | \n", "-2.60 | \n", "0.343967 | \n", "
| 2 | \n", "65 | \n", "BE | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "116.99 | \n", "5.6 | \n", "1996 | \n", "-2.50 | \n", "-0.79 | \n", "0.269843 | \n", "
| 3 | \n", "66 | \n", "BG | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "114.80 | \n", "4.5 | \n", "2000 | \n", "-1.36 | \n", "-2.43 | \n", "0.593467 | \n", "
| 4 | \n", "67 | \n", "CY | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "103.33 | \n", "6.5 | \n", "2000 | \n", "-0.89 | \n", "-1.91 | \n", "0.734424 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 10052 | \n", "10122 | \n", "NO | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "69.20 | \n", "4.8 | \n", "1996 | \n", "-0.10 | \n", "-0.20 | \n", "0.358546 | \n", "
| 10053 | \n", "10123 | \n", "PT | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "65.76 | \n", "8.0 | \n", "1996 | \n", "-0.33 | \n", "-0.14 | \n", "0.110814 | \n", "
| 10054 | \n", "10124 | \n", "SE | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "75.41 | \n", "8.7 | \n", "1996 | \n", "-0.19 | \n", "-0.54 | \n", "0.820810 | \n", "
| 10055 | \n", "10125 | \n", "SI | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "43.88 | \n", "7.2 | \n", "1996 | \n", "-0.55 | \n", "-0.64 | \n", "0.947574 | \n", "
| 10056 | \n", "10126 | \n", "UK | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "67.80 | \n", "8.2 | \n", "1996 | \n", "-0.30 | \n", "-0.30 | \n", "0.300982 | \n", "
10057 rows × 11 columns
\n", "| \n", " | Unnamed: 0 | \n", "country | \n", "date | \n", "year | \n", "month | \n", "hicp | \n", "unemp | \n", "first_year | \n", "inflation | \n", "lag_inflation | \n", "weights | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "48 | \n", "IE | \n", "2022M02 | \n", "2022 | \n", "2 | \n", "107.10 | \n", "4.8 | \n", "1996 | \n", "-2.20 | \n", "-1.00 | \n", "0.235249 | \n", "
| 1 | \n", "64 | \n", "AT | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "113.93 | \n", "4.8 | \n", "1996 | \n", "-1.47 | \n", "-2.60 | \n", "0.343967 | \n", "
| 2 | \n", "65 | \n", "BE | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "116.99 | \n", "5.6 | \n", "1996 | \n", "-2.50 | \n", "-0.79 | \n", "0.269843 | \n", "
| 3 | \n", "66 | \n", "BG | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "114.80 | \n", "4.5 | \n", "2000 | \n", "-1.36 | \n", "-2.43 | \n", "0.593467 | \n", "
| 4 | \n", "67 | \n", "CY | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "103.33 | \n", "6.5 | \n", "2000 | \n", "-0.89 | \n", "-1.91 | \n", "0.734424 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 10052 | \n", "10122 | \n", "NO | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "69.20 | \n", "4.8 | \n", "1996 | \n", "-0.10 | \n", "-0.20 | \n", "0.358546 | \n", "
| 10053 | \n", "10123 | \n", "PT | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "65.76 | \n", "8.0 | \n", "1996 | \n", "-0.33 | \n", "-0.14 | \n", "0.110814 | \n", "
| 10054 | \n", "10124 | \n", "SE | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "75.41 | \n", "8.7 | \n", "1996 | \n", "-0.19 | \n", "-0.54 | \n", "0.820810 | \n", "
| 10055 | \n", "10125 | \n", "SI | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "43.88 | \n", "7.2 | \n", "1996 | \n", "-0.55 | \n", "-0.64 | \n", "0.947574 | \n", "
| 10056 | \n", "10126 | \n", "UK | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "67.80 | \n", "8.2 | \n", "1996 | \n", "-0.30 | \n", "-0.30 | \n", "0.300982 | \n", "
10057 rows × 11 columns
\n", "| \n", " | Unnamed: 0 | \n", "country | \n", "date | \n", "year | \n", "month | \n", "hicp | \n", "unemp | \n", "first_year | \n", "inflation | \n", "lag_inflation | \n", "weights | \n", "int | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "48 | \n", "IE | \n", "2022M02 | \n", "2022 | \n", "2 | \n", "107.10 | \n", "4.8 | \n", "1996 | \n", "-2.20 | \n", "-1.00 | \n", "0.235249 | \n", "-0.621058 | \n", "
| 1 | \n", "64 | \n", "AT | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "113.93 | \n", "4.8 | \n", "1996 | \n", "-1.47 | \n", "-2.60 | \n", "0.343967 | \n", "-0.696534 | \n", "
| 2 | \n", "65 | \n", "BE | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "116.99 | \n", "5.6 | \n", "1996 | \n", "-2.50 | \n", "-0.79 | \n", "0.269843 | \n", "-0.773641 | \n", "
| 3 | \n", "66 | \n", "BG | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "114.80 | \n", "4.5 | \n", "2000 | \n", "-1.36 | \n", "-2.43 | \n", "0.593467 | \n", "-1.109191 | \n", "
| 4 | \n", "67 | \n", "CY | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "103.33 | \n", "6.5 | \n", "2000 | \n", "-0.89 | \n", "-1.91 | \n", "0.734424 | \n", "-0.446530 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 10052 | \n", "10122 | \n", "NO | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "69.20 | \n", "4.8 | \n", "1996 | \n", "-0.10 | \n", "-0.20 | \n", "0.358546 | \n", "0.268909 | \n", "
| 10053 | \n", "10123 | \n", "PT | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "65.76 | \n", "8.0 | \n", "1996 | \n", "-0.33 | \n", "-0.14 | \n", "0.110814 | \n", "0.117795 | \n", "
| 10054 | \n", "10124 | \n", "SE | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "75.41 | \n", "8.7 | \n", "1996 | \n", "-0.19 | \n", "-0.54 | \n", "0.820810 | \n", "1.061307 | \n", "
| 10055 | \n", "10125 | \n", "SI | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "43.88 | \n", "7.2 | \n", "1996 | \n", "-0.55 | \n", "-0.64 | \n", "0.947574 | \n", "0.400824 | \n", "
| 10056 | \n", "10126 | \n", "UK | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "67.80 | \n", "8.2 | \n", "1996 | \n", "-0.30 | \n", "-0.30 | \n", "0.300982 | \n", "0.331080 | \n", "
10057 rows × 12 columns
\n", "| \n", " | Unnamed: 0 | \n", "country | \n", "date | \n", "year | \n", "month | \n", "hicp | \n", "unemp | \n", "first_year | \n", "inflation | \n", "lag_inflation | \n", "weights | \n", "int | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "48 | \n", "IE | \n", "2022M02 | \n", "2022 | \n", "2 | \n", "107.10 | \n", "4.8 | \n", "1996 | \n", "-2.20 | \n", "-1.00 | \n", "0.235249 | \n", "-0.621058 | \n", "
| 1 | \n", "64 | \n", "AT | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "113.93 | \n", "4.8 | \n", "1996 | \n", "-1.47 | \n", "-2.60 | \n", "0.343967 | \n", "-0.696534 | \n", "
| 2 | \n", "65 | \n", "BE | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "116.99 | \n", "5.6 | \n", "1996 | \n", "-2.50 | \n", "-0.79 | \n", "0.269843 | \n", "-0.773641 | \n", "
| 3 | \n", "66 | \n", "BG | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "114.80 | \n", "4.5 | \n", "2000 | \n", "-1.36 | \n", "-2.43 | \n", "0.593467 | \n", "-1.109191 | \n", "
| 4 | \n", "67 | \n", "CY | \n", "2022M01 | \n", "2022 | \n", "1 | \n", "103.33 | \n", "6.5 | \n", "2000 | \n", "-0.89 | \n", "-1.91 | \n", "0.734424 | \n", "-0.446530 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 10052 | \n", "10122 | \n", "NO | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "69.20 | \n", "4.8 | \n", "1996 | \n", "-0.10 | \n", "-0.20 | \n", "0.358546 | \n", "0.268909 | \n", "
| 10053 | \n", "10123 | \n", "PT | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "65.76 | \n", "8.0 | \n", "1996 | \n", "-0.33 | \n", "-0.14 | \n", "0.110814 | \n", "0.117795 | \n", "
| 10054 | \n", "10124 | \n", "SE | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "75.41 | \n", "8.7 | \n", "1996 | \n", "-0.19 | \n", "-0.54 | \n", "0.820810 | \n", "1.061307 | \n", "
| 10055 | \n", "10125 | \n", "SI | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "43.88 | \n", "7.2 | \n", "1996 | \n", "-0.55 | \n", "-0.64 | \n", "0.947574 | \n", "0.400824 | \n", "
| 10056 | \n", "10126 | \n", "UK | \n", "1996M01 | \n", "1996 | \n", "1 | \n", "67.80 | \n", "8.2 | \n", "1996 | \n", "-0.30 | \n", "-0.30 | \n", "0.300982 | \n", "0.331080 | \n", "
10057 rows × 12 columns
\n", "