文件历史

提交图

36 次代码提交

作者 SHA1 备注 提交日期
Rhett Ying 381421b7fb [TensorpipeDeprecation] remove long live server from launch (#5920) 2023-06-29 13:59:59 +08:00
Theodore Vasiloudis 1ab0170a10 [Distributed] Ensure round-robin edge file downloads, reduce logging, other improvements. (#5578)
Co-authored-by: Rhett Ying <85214957+Rhett-Ying@users.noreply.github.com>
2023-04-27 11:17:55 -07:00
kylasa 4085ec8a46 Use correct delimiter when reading edge files during parmetis processing step (#5481)
Co-authored-by: xiang song(charlie.song) <classicxsong@gmail.com>
2023-04-13 11:07:08 -07:00
Hongzhi (Steve), Chen 5b409bf7f5 Rename_test (#5487)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-28-63.ap-northeast-1.compute.internal>
2023-03-24 18:44:24 +08:00
kylasa 92e2299593 [DistDGL][Robustness]Replacing numpy's unique with custom implementation (#5391)
* Replacing numpy's unique with custom implementation

* Added docstring to the new function.

* Adding unit tests

* Numpy's version issues with the 'kind' argument.

* Addressing CI Test Failure.

* Addressing CI review comments.

* revised implementation, optimized for time.

* added missing arguments for fallback case.

* Addressing CI test failures.

* Resolving issues with PYTHONPATH

* Fix CI Test Failure issues.

* fix CI test failures.

---------

Co-authored-by: Rhett Ying <85214957+Rhett-Ying@users.noreply.github.com>
2023-03-10 13:38:27 -08:00
kylasa e74b3d3dd2 [DistDGL][TestCoverage]Added testcase for testing distributed lookup service. (#5365)
* Added testcase for testing distributed lookup service.

* Applying lintrunner patch.

* Fixing CI Test environment failures.

* lintrunner patch.

* lintrunner patch

* Fix CI Failure.

* Fixing CI Test failure cases.

* lintrunner patch.

* lintrunner patch and CI test failure.

* Restore no. of test cases.

* Resolving pythonpath issues.

* lintrunner patch.

* updating PYTHONPATH to resolve lib path

* Resolve merge conflicts

* Resolving issues with PYTHONPATH env variable.

* fix module path

* rename utils script under test to avoid ambiguity

* remove unnecessary pythonpath

* fix lint error

* fix lint error

---------

Co-authored-by: RhettYing <rhett_ying@qq.com>
2023-03-10 12:19:41 +08:00
kylasa 7b766393f8 [DistDGL][UserEx]Sync parmetis_wrapper with changes in metadata.json (#5385)
* Sync parmetis_wrapper with changes in metadata.json

1. In the preprocess.py, make sure that num_partitions is defined as input argument. Also, align 'input_dir' with the input dataset. schema_file is assumed to be located inside the input_dir. Also, graph_stats.txt file is assumed to be present in the input_dir.

2. Use DGL_HOME environment variable so that parmetis_wrapper command can be run anywhere.

* Fix CI test failure cases.

* Addressing CI review comments.

* Addressing CI test failures.

* Applying lintrunner patch
2023-03-06 15:50:43 -08:00
kylasa 894ad1e3ea Support for no. of chunks smaller than no. of partitions. (#5390)
* Support for no. of chunks smaller than no. of partitions and Adding appropriate test cases.

Following changes are made with this PR.
1. Code changes for handling no. of chunks smaller than no. of partitions
2. Adding new test cases, which were previously deleted, for no. of chunks smaller than no. of partitions.
3. Also adding test cases, where multiple partitions are handled by a single process.

* Committing the missing files in this commit.

* lintrunner patch.

* lintrunner check

* lintrunner patch here.

* CI review comments.
2023-03-06 14:10:51 -08:00
kylasa a14f69c97d [DistDGL][Feature_Request]Changes in the metadata.json file for input graph dataset. (#5310)
* Implemented the following changes.

* Remove NUM_NODES_PER_CHUNK
* Remove NUM_EDGES_PER_CHUNK
* Remove the dependency between no. of edge files per edge type and no. of partitions
* Remove the dependency between no. of edge feature files per edge type and no. of partitions
* Remove the dependency between no. of edge feature files and no. of edge files per edge type.
* Remove the dependency between no. of node feature files and no. of partitions
* Add “node_type_counts”. This will be a list of integers. Each integer will represent total count of a node-type. The index in this list and the index in the “node_type” will be the same for a given node-type.
* Add “edge_type_counts”. This will be a list of integers. Each integer will represent total count of an edge-type. The index in this list and the index in the “edge_type” list will be the same for a given edge-type.

* Applying lintrunner patch.

* Adding missing keys to the metadata in the unit test framework.

* lintrunner patch.

* Resolving CI test failures due to merge conflicts.

* Applying lintrunner patch

* applying lintrunner patch

* Replacing tabspace with spaces - to satisfy lintrunner

* Fixing the CI Test Failure cases.

* Applying lintrunner patch

* lintrunner complaining about a blank line.

* Resolving issues with print statement for NoneType

* Removed tests for the arbitrary chunks tests. Since this functionality is not supported anymore.

* Addressing CI review comments.

* addressing CI review comments

* lintrunner patch

* lintrunner patch.

* Addressing CI review comments.

* lintrunner patch.
2023-02-24 17:01:04 -08:00
kylasa c42fa8a55c New script for customers to validate partitioned graph objects (#5340)
* A new script to validate graph partitioning pipeline

* Addressing CI review comments.

* lintrunner patch.
2023-02-23 14:30:39 -08:00
Hongzhi (Steve), Chen f0759a96ee [Misc] Auto-reformat test/. (#5324)
* auto-format-test

* more

* remove

---------

Co-authored-by: Ubuntu <ubuntu@ip-172-31-28-63.ap-northeast-1.compute.internal>
2023-02-19 22:50:37 +08:00
kylasa 432c71ef25 Code changes to fix order sensitivity of the pipeline (#5288)
Following changes are made in this PR.
1. In dataset_utils.py, when reading edges from disk we follow the order defined by the STR_EDGE_TYPE key in the metadata.json file. This order is implicitly used to assign edgeid to edge types. This same order is used to read edges from the disk as well.
2. Now the unit test framework will also randomize the order of edges read from the disk. This is done for the edges when reading from the disk for the unit tests.

Co-authored-by: Quan (Andy) Gan <coin2028@hotmail.com>
2023-02-13 10:56:26 -08:00
Theodore Vasiloudis 9890201d58 [Dist] Allow reading and writing single-column vector Parquet files. (#5098)
* Allow reading and writing single-column vector Parquet files.

These files are commonly produced by Spark ML's feature processing code.

* [Dist] Only write single-column vector files for Parquet in tests.
2023-01-05 20:37:28 +08:00
Theodore Vasiloudis 774709d399 [Dist] Add support for Parquet-formatted edges files, remove some assumptions on edge file number. (#5051)
* [Dist] Add support for Parquet-formatted edges files, remove some assumptions on edge file number.

* [Dist] Add parquet edges option to unit tests.

Co-authored-by: xiang song(charlie.song) <classicxsong@gmail.com>
2023-01-03 16:01:50 +08:00
Rhett Ying 9731e02325 [Dist] enable to chunk node/edge data into arbitrary number of chunks (#4930)
* [Dist] enable to chunk node/edge data into arbitrary number of chunks

* [Dist] enable to split node/edge data into arbitrary parts

* refine code

* Format boolean to uint8 forcely to avoid dist.scatter failure

* convert boolean to int8 before scatter and revert it after scatter

* refine code

* fix test

* refine code

* move test utilities into utils.py

* update comment

* fix empty data

* update

* update

* fix empty data issue

* release unnecessary mem

* release unnecessary mem

* release unnecessary mem

* release unnecessary mem

* release unnecessary mem

* remove unnecessary shuffle data

* separate array_split into standalone utility

* add example

Co-authored-by: xiang song(charlie.song) <classicxsong@gmail.com>
2022-12-15 10:01:39 +08:00
Rhett Ying 32dc1af67e [Dist] generate partition meta for ParMETIS pipeline (#5020)
* [Dist] generate partition meta for ParMETIS
2022-12-14 21:15:54 +08:00
peizhou001 08fd6cf826 [Feature] Add parquet support for node/edge features in chunked data (#4933) 2022-11-28 18:13:16 +08:00
kylasa c8ea9fa4e4 [Dist] Flexible pipeline - Initial commit (#4733)
* Flexible pipeline - Initial commit

1. Implementation of flexible pipeline feature.
2. With this implementation, the pipeline now supports multiple partitions per process. And also assumes that num_partitions is always a multiple of num_processes.

* Update test_dist_part.py

* Code changes to address review comments

* Code refactoring of exchange_features function into two functions for better readability

* Upadting test_dist_part to fix merge issues with the master branch

* corrected variable names...

* Fixed code refactoring issues.

* Provide missing function arguments to exchange_feature function

* Providing the missing function argument to fix error.

* Provide missing function argument to 'get_shuffle_nids' function.

* Repositioned a variable within its scope.

* Removed tab space which is causing the indentation problem

* Fix issue with the CI test framework, which is the root cause for the failure of the CI tests.

1. Now we read files specific to the partition-id and store this data separately, identified by the local_part_id, in the local process.
2. Similarly as above, we also differentiate the node and edge features type_ids with the same keys as above.
3. These above two changes will help up to get the appropriate feature data during the feature exchange and send to the destination process correctly.

* Correct the parametrization for the CI unit test cases.

* Addressing Rui's code review comments.

* Addressing code review comments.
2022-11-18 08:21:55 -08:00
Rhett Ying ed8e9c4440 [Dist] deprecate etype and always use canonical etype for partition and load (#4777)
* [Dist] deprecate etype and always use canonical etype for partition and load

* enable canonical etypes in dist part pipeline

* resolve rebase conflicts

* fix lint

* fix test failure

* throw exception if outdated part config is loaded

* refine

* refine

* revert unnecessary change

* fix typo
2022-11-04 10:08:18 +08:00
Rhett Ying ea4d9e832d [Dist] fix etype issue in dist part pipeline (#4754)
* [Dist] fix etype issue in dist part pipeline

* add comments
2022-10-27 09:44:04 +08:00
Rhett Ying 1990e797e1 [Dist] Reduce startup overhead: sort etypes and save in specified formats (#4735)
* [Dist] reduce startup overhead: enable to save in specified formats

* [Dist] reduce startup overhead: sort partitions when generating

* sort csc/csr only whenmultiple etypes

* refine
2022-10-26 19:07:10 +08:00
peizhou001 743516f37b add standalone tools for generating canonical etypes (#4626)
* add a standalone tool for change etypes to canonical etypes in part config
2022-10-19 23:34:39 +08:00
Rhett Ying 6a46072593 [Dist] decouple num_chunks and num_parts for graphs with edge feature (#4729)
* [Dist] decouple num_chunks and num_parts for graphs with edge feature

* fix test failure
2022-10-19 13:47:54 +08:00
Rhett Ying b13092172d [Dist] Reduce peak memory in DistDGL (#4687)
* [Dist] Reduce peak memory in DistDGL: avoid validation, release memory once loaded

* remove orig_id from ndata/edata for partition_graph()

* delete orig_id from ndata/edata in dist part pipeline

* reduce dtype size and format before saving graphs

* fix lint

* ETYPE requires to be int32/64 for CSRSortByTag

* fix test failure

* refine
2022-10-17 13:35:55 +08:00
Hongzhi (Steve), Chen ea48ce7a37 [Misc] Black auto fix. (#4697)
Co-authored-by: Steve <ubuntu@ip-172-31-34-29.ap-northeast-1.compute.internal>
2022-10-11 13:31:13 +08:00
kylasa eae6ce2a4f ParMETIS wrapper script to enable ParMETIS to process chunked dataset format (#4605)
* Creating ParMETIS wrapper script to run parmetis using one script from user perspective

* Addressed all the CI comments from PR https://github.com/dmlc/dgl/pull/4529

* Addressing CI comments.

* Isort, and black changes.

* Replaced python with python3

* Replaced single quote with double quotes per suggestion.

* Removed print statement

* Addressing CI Commets.

* Addressing CI review comments.

* Addressing CI comments as per chime discussion with Rui

* CI Comments, Black and isort changes

* Align with code refactoring, black, isort and code review comments.

* Addressing CI review comments, and fixing merge issues with the master branch

* Updated with proper unit test skip decorator
2022-10-03 12:23:57 -07:00
kylasa 1f471396d8 Edge Feature support for input graph datasets for dist. graph partitioning pipeline (#4623)
* Added support for edge features.

* Added comments and removing unnecessary print statements.

* updated data_shuffle.py to remove compile error.

* Repaled python3 with python to match CI test framework.

* Removed unrelated files from the pull request.

* Isort changes.

* black changes on this file.

* Addressing CI review comments.

* Addressing CI comments.

* Removed duplicated and resolved merge conflict code.

* Addressing CI Comments from Rui.

* Addressing CI comments, and fixing merge issues.

* Addressing CI comments, code refactoring, isort and black
2022-10-03 01:02:15 -07:00
Rhett Ying cf19254a19 [Dist] enable to partition many chunks into less partitions via pipeline (#4620)
* [Dist] enable to partition many chunks into less partitions via pipeline

* refine

* add meta file for num_parts, add more tests, refine docstring

* remove args.num_parts

* create pydantic class for partition metadata

* refine

* rename json file
2022-09-28 16:52:39 +08:00
Rhett Ying 6c1500d49f [Dist] save original node/edge IDs into separate files (#4649)
* [Dist] save original node/edge IDs into separate files

* separate nids and eids
2022-09-28 14:30:24 +08:00
peizhou001 166b273bec add ssh port config for dispatchdata (#4557) 2022-09-20 20:41:41 +08:00
Rhett Ying 099b173f6f [DistPart] expose timeout config for process group (#4532)
* [DistPart] expose timeout config for process group

* refine code

* Update tools/distpartitioning/data_proc_pipeline.py

Co-authored-by: Minjie Wang <wmjlyjemaine@gmail.com>

Co-authored-by: Minjie Wang <wmjlyjemaine@gmail.com>
2022-09-15 15:28:36 +08:00
Mufei Li 7a41c126f6 [Doc] Change random.py to random_partition.py in guide on distributed partition pipeline (#4438)
* Update distributed-preprocessing.rst

* Update

Co-authored-by: Ubuntu <ubuntu@ip-172-31-9-26.ap-northeast-1.compute.internal>
2022-08-22 18:12:55 +08:00
Mufei Li 2e8ae9f980 [Dist][CI] Unit test for the new distributed partitioning pipeline (#4394)
* chunked graph data format

* Update

* Update

* Update task_distributed_test.sh

* Update

* Update

* Revert "Update"

This reverts commit 03c461870f19375fb03125b061fc853ab555577f.

* Update

* Update

* ssh-keygen

* CI

* install openssh

* openssh

* Update

* CI

* Update

* Update

Co-authored-by: Ubuntu <ubuntu@ip-172-31-53-142.us-west-2.compute.internal>
Co-authored-by: Ubuntu <ubuntu@ip-172-31-16-87.us-west-2.compute.internal>
Co-authored-by: Ubuntu <ubuntu@ip-172-31-20-21.us-west-2.compute.internal>
Co-authored-by: Ubuntu <ubuntu@ip-172-31-9-26.ap-northeast-1.compute.internal>
2022-08-19 14:20:56 +08:00
Rhett Ying 9501ed6a07 [Dist] master port should be fixed for all trainers (#4108)
* [Dist] master port should be fixed for all trainers

* add tests for tools/launch.py
2022-06-14 11:22:22 +08:00
Eric Kim ac01e88082 [Tools] In tools/launch.py, correctly pass all DGL client/server env vars if udf is a multi-command (#3245)
* Correctly pass all DGL client/server env vars if udf is a multi-command

* Refactor to use wrap_cmd_with_local_envvars() helper fn
2021-08-16 18:54:48 -07:00
Eric Kim c40bbf4f33 [Tools] Refactor tools/launch.py to handle more python binary names (#3205)
* Refactors torch dist launcher udf-wrap code to handle more python versions

* minor changes
2021-08-02 17:31:02 +08:00