{"id":21078248,"url":"https://github.com/vgg47/local-sgd","last_synced_at":"2025-05-16T08:31:36.396Z","repository":{"id":81129902,"uuid":"225976200","full_name":"vgg47/Local-SGD","owner":"vgg47","description":"Local SGD implementation based on https://arxiv.org/abs/1805.09767","archived":false,"fork":false,"pushed_at":"2019-12-20T21:39:55.000Z","size":22404,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2025-04-03T22:11:19.927Z","etag":null,"topics":["computational-mathematics","gradient-descent","mipt","optimization","science"],"latest_commit_sha":null,"homepage":"https://www.overleaf.com/read/kkfbfbtngnyv","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vgg47.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-12-04T23:32:20.000Z","updated_at":"2020-12-02T01:14:01.000Z","dependencies_parsed_at":"2023-09-21T16:30:55.955Z","dependency_job_id":null,"html_url":"https://github.com/vgg47/Local-SGD","commit_stats":{"total_commits":47,"total_committers":5,"mean_commits":9.4,"dds":0.4042553191489362,"last_synced_commit":"324b36350ca8aefc5f7f69e9943483bca3fe8643"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgg47%2FLocal-SGD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgg47%2FLocal-SGD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgg47%2FLocal-SGD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgg47%2FLocal-SGD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vgg47","download_url":"https://codeload.github.com/vgg47/Local-SGD/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254496188,"owners_count":22080663,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computational-mathematics","gradient-descent","mipt","optimization","science"],"created_at":"2024-11-19T19:39:48.126Z","updated_at":"2025-05-16T08:31:31.387Z","avatar_url":"https://github.com/vgg47.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Как запустить код на кластере?\n\nСклонируйте репозиторий:\n\t\n\tgit clone https://github.com/vgg47/local_sgd/ local_sgd\n\nПерейдите в папку с проектом:\n\t\n\tсd local_sgd\n\nДобавьте все необходимые пакеты:\n\t\n\tmodule add python/3.7 tensorflow/1.14 mpi/openmpi4-x86_64 \n\tpip install scipy mpi4py --user\n\nДля запуска алгоритма выполните команду\n\n\tsbatch -n 20 ./run.sh \n\n-n - количество воркеров\n\nВ run.sh зашита конфигурация запуска алгоритма, приведу описание флагов:\n\t\n\t--steps, -s\t\tколичество шагов градиентного спуска, дефолтно 10^3\n\t--sync\t\t\tколичество синхронизации между воркерами, дефолтно 1\n\t--dataset, -d\t\tпуть к файлу с датасетом, дефолтно ./data/default_data.csv\n\t--labels, -l\t\tпуть к файлу со значениями таргета, дефолтно ./data/default_labels.csv\n\t--batch-size, -b\tразмер батча, дефолтно 16\n\t--precision\t\tминимальное евклидово расстояние, на которое должны изменяться веса на каждом шаге \n\t\t\t\tградиентного спуска, дефолтно 10^-8\n\nВсе их нужно добавлять к строке:\n\n\tmpiexec  python3 script.py \n\n\n\n#### Внимание\nЕсли у вас нет датасета, то его можно сгенерить. Запустите data_generator.py.\nПри запуске скрипт сначала считывает количество строк в датасете, а затем количество фичей.\nНазвания файлов можно не указывать, тогда и при запуске алгоритма флажки с директориями\nможно будет опустить, потому что будут использоваться дефолтные значения. \nДля демонстрации отлично подходит датасет размером 10000 * 100.\n\nДля запуска тестов и скриптов отрисовки графиков необходимо предварительно нарезать данные на партиции.\nЧтобы сделать это запустите скрипт partitioner.py, указав ему в аргументы директории данных и размер шага для\nразмера партиции (10% от размера датасета подойдет). После этого запускайте файл test.py. \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvgg47%2Flocal-sgd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvgg47%2Flocal-sgd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvgg47%2Flocal-sgd/lists"}