diff --git a/.teamcity/build.sh b/.teamcity/build.sh index 1382e68fc08a4e29c1df5f1f3d549190ee6f8d53..40029c69e2a1207dab894218c20d88b79e6a227e 100755 --- a/.teamcity/build.sh +++ b/.teamcity/build.sh @@ -155,8 +155,8 @@ function main() { echo Running tests in $env .. echo `which pip` echo ======================================== - pip install -i https://pypi.tuna.tsinghua.edu.cn/simple . - pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r .teamcity/requirements.txt + pip install . + pip install -r .teamcity/requirements.txt run_test_with_cpu $env run_test_with_cpu $env "DIS_TESTING_SERIALLY" done diff --git a/docs/parallel_training/overview.rst b/docs/parallel_training/overview.rst index cc5e08757a67c865b150ba5c74b9d6c3d693a8fe..30c553b40ff5355c5df6976b746bc1d304af0680 100644 --- a/docs/parallel_training/overview.rst +++ b/docs/parallel_training/overview.rst @@ -1,4 +1,4 @@ -Summary +Overview ======= Easy-to-use @@ -22,10 +22,11 @@ Web UI for computation resources to the cluster. Users can view the cluster status at a WEB UI. It shows the detailed information for each worker(e.g, memory used) and each task submitted. -Board compatibility + +Supporting vairous frameworks ################### -| Our framework for distributed training is compatible with any other - frameworks, like tensorflow, pytorch or mxnet. By adding `@parl.remote_class` +| PARL for distributed training is compatible with any other + frameworks, like tensorflow, pytorch and mxnet. By adding `@parl.remote_class` decorator to their codes, users can easily convert their codes to distributed computation. @@ -33,7 +34,7 @@ Why PARL ######## High throughput -############### +------------------------- | PARL uses a point-to-point connection for network communication in the cluster. Unlike other framework like RLlib which replies on redis for communication, PARL is able to achieve much higher throughput. The results @@ -41,7 +42,7 @@ High throughput achieved an increase of 160% on data throughout over Ray(RLlib). Automatic deployment -#################### +------------------------- | Unlike other parallel frameworks which fail to import modules from external file, PARL will automatically package all related files and send them to remote machines. diff --git a/docs/parallel_training/setup.rst b/docs/parallel_training/setup.rst index ce2189d1209569501da77b211e84e3c16100ae1f..2caed6002d812aba2c2fae1dcc25923b5f523fca 100644 --- a/docs/parallel_training/setup.rst +++ b/docs/parallel_training/setup.rst @@ -61,4 +61,4 @@ Further Reading | Now we know how to set up a cluster and use this cluster by simply adding ``@parl.remote_class``. | In `next_tutorial`_, we will show how this decorator help us implement the **real** multi-thread computation in Python, breaking the limitation of Python Global Interpreter Lock(GIL). -.. _`next_tutorial`: https://parl.readthedocs.io/parallel_training/recommended_practice.html +.. _`next_tutorial`: https://parl.readthedocs.io/en/latest/parallel_training/recommended_practice.html diff --git a/examples/A2C/README.md b/examples/A2C/README.md index 469b3535e000970ebcef31cdd8a7200f6425db44..bb69f56c52714f0891977d48fb4f2ea84892ad69 100755 --- a/examples/A2C/README.md +++ b/examples/A2C/README.md @@ -8,11 +8,14 @@ Please see [here](https://gym.openai.com/envs/#atari) to know more about Atari g ### Benchmark result Mean episode reward in training process after 10 million sample steps. +![learninng_curve](learning_curve.png) + +Performance of A2C on various envrionments + +

+result +

-| | | | | | -|--------------|----------------|------------------|---------------|---------------------| -| Alien (1278) | Amidar (380) | Assault (4659) | Aterix (3883) | Atlantis (3040000) | -| Pong (20) | Breakout (405) | Beamrider (3394) | Qbert (14528) | SpaceInvaders (819) | ## How to use ### Dependencies diff --git a/examples/A2C/learning_curve.png b/examples/A2C/learning_curve.png new file mode 100644 index 0000000000000000000000000000000000000000..caf68bb115a7105c3f36a98a7f10f50695c1dc7c Binary files /dev/null and b/examples/A2C/learning_curve.png differ diff --git a/examples/A2C/result.png b/examples/A2C/result.png new file mode 100644 index 0000000000000000000000000000000000000000..d15b1d60611ee128238997a3ba8376f1bbfc1f2f Binary files /dev/null and b/examples/A2C/result.png differ diff --git a/parl/remote/tests/cluster_monitor_3_test.py b/parl/remote/tests/cluster_monitor_3_test.py index 8db2d345f75bf665089653f2c42d4317108b7c5c..06ccf2fdfa8905c7566dcdcef64f7b3bb5744371 100644 --- a/parl/remote/tests/cluster_monitor_3_test.py +++ b/parl/remote/tests/cluster_monitor_3_test.py @@ -81,12 +81,12 @@ class TestClusterMonitor(unittest.TestCase): for i in range(10): workers[i].exit() - time.sleep(40) + time.sleep(60) self.assertEqual(10, len(cluster_monitor.data['workers'])) for i in range(10, 20): workers[i].exit() - time.sleep(40) + time.sleep(60) self.assertEqual(0, len(cluster_monitor.data['workers'])) master.exit() diff --git a/parl/utils/machine_info.py b/parl/utils/machine_info.py index 8a04ee124c5db475d01c3d870097eb6ba9d3456b..3ab8e404a442d8ac4eec20e5cbb3bf6c07b0f541 100644 --- a/parl/utils/machine_info.py +++ b/parl/utils/machine_info.py @@ -77,7 +77,7 @@ def get_gpu_count(): logger.info( 'CUDA_VISIBLE_DEVICES found gpu count: {}'.format(gpu_count)) except: - logger.warning('Cannot find available GPU devices, using CPU now.') + logger.info('Cannot find available GPU devices, using CPU now.') gpu_count = 0 else: try: @@ -85,7 +85,7 @@ def get_gpu_count(): "-L"])).count('UUID') logger.info('nvidia-smi -L found gpu count: {}'.format(gpu_count)) except: - logger.warning('Cannot find available GPU devices, using CPU now.') + logger.info('Cannot find available GPU devices, using CPU now.') gpu_count = 0 return gpu_count