47 lines
2.2 KiB
Markdown
47 lines
2.2 KiB
Markdown
## Данные
|
||
|
||
[Kaggle Bitcoin Historical Data](https://www.kaggle.com/datasets/mczielinski/bitcoin-historical-data)
|
||
|
||
## Задание
|
||
|
||
Группируем данные по дням (Timestamp), за каждый день вычисляем среднюю цену
|
||
(мат. ожидание по значениям Low и High), выводим в файл интервалы дат
|
||
(начиная с начальной даты в наборе данных), за которые средняя дневная цена менялась
|
||
не менее чем на 10% от даты начала интервала, вместе с минимальными и максимальными
|
||
значениями Open и Close за все дни внутри интервала.
|
||
|
||
## Параллельное чтение данных
|
||
|
||
Нет смысла параллельно читать данные из NFS, так как в реальности файлы с данными
|
||
будут лежать только на NFS сервере. То есть другие узлы лишь отправляют сетевые запросы
|
||
на NFS сервер, который уже читает реальные данные с диска и лишь затем отправляет
|
||
их другим узлам.
|
||
|
||
Чтобы этого избежать, нужно на всех машинах скопировать файлы с данными в их реальные
|
||
файловые системы. Например в папку `/data`.
|
||
|
||
```sh
|
||
# На каждом узле создаем директорию /data
|
||
sudo mkdir /data
|
||
sudo chown $USER /data
|
||
|
||
# Копируем данные
|
||
cd /mnt/shared/supercomputers/data
|
||
cp data.csv /data/
|
||
```
|
||
|
||
## Сборка
|
||
|
||
Проект обязательно должен быть расположен в общей директории для всех узлов,
|
||
например, в `/mnt/shared/supercomputers/build`.
|
||
Перед запуском указать актуальный путь в `run.slurm`.
|
||
|
||
```sh
|
||
make
|
||
```
|
||
|
||
```sh
|
||
make run
|
||
```
|
||
|
||
Обязательно должны быть запущены все 4 нода. Результат будет в out.txt. |