How to better use the ZMQ for data parallel processing?

30 views
Skip to first unread message

lixia...@gmail.com

unread,
Jan 7, 2017, 10:38:23 PM1/7/17
to fuel-users
I find the toy example is very efficient in the tutorial of parallel data processing (http://fuel.readthedocs.io/en/latest/server.html?highlight=ShuffledScheme).  The result is 0.8s vs 0.45s on CPU. Now, I use the method on the sequence to sequence task. The server and the client are executed on the same GPU. But it seems like there is no speed up for the batch training time. I do not know whether I do not use it correctly. Anyone has experience  on the aspect? And what is the most suitable scene  for using ZMQ data parallel? 

Dmitriy Serdyuk

unread,
Jan 8, 2017, 2:53:53 PM1/8/17
to fuel-users, lixia...@gmail.com

The point of the parallel data processing is that it utilizes CPU to construct next batch of data (query the dataset, aggregate examples, apply transformations). At the same time the computation (the gradient step) is run on GPU. It means that you will benefit only in a case when data processing takes sufficient amount of time. In most cases, the seq-to-seq models are very slow, while data aggregation is simple and fast.

I can suggest to use the Timing extension to measure what percentage of time is spent on data processing and training itself.

Reply all
Reply to author
Forward
0 new messages