[Beowulf] Torrents for HPC

Prentice Bisbal prentice at ias.edu
Wed Jun 13 06:16:23 PDT 2012


Bill,

Thanks for sharing this. I've often wondered if using BitTorrent in this
way would be useful for HPC. Thanks for answering that question!

Prentice 


On 06/08/2012 08:06 PM, Bill Broadley wrote:
> I've built Myrinet, SDR, DDR, and QDR clusters ( no FDR yet), but I 
> still have users whose use cases and budgets still only justify GigE.
>
> I've setup a 160TB hadoop cluster is working well, but haven't found 
> justification for the complexity/cost related to lustre.  I have high 
> hopes for Ceph, but it seems not quite ready yet.  I'd happy to hear 
> otherwise.
>
> A new user on one of my GigE clusters submits batches of 500 jobs that 
> need to randomly read a 30-60GB dataset.  They aren't the only user of 
> said cluster so each job will be waiting in the queue with a mix of others.
>
> As you might imagine that hammers a central GigE connected NFS server 
> pretty hard.  This cluster has 38 computes/304 cores/608 threads.
>
> I thought torrent might be a good way to publish such a dataset to the 
> compute nodes (thus avoiding the GigE bottleneck).  So I wrote a 
> small/simple bittorrent client and made a 16GB example data set and 
> measured the performance pushing it to 38 compute nodes:
>      http://cse.ucdavis.edu/bill/btbench-2.png
>
> The slow ramp up is partially because I'm launching torrent clients with 
> a crude for i in <compute_nodes> { ssh $i launch_torrent.sh }.
>
> I get approximately 2.5GB/sec sustained when writing to 38 compute 
> nodes.  So 38 nodes * 16GB = 608GB to distribute @ 2.5 GHz sec = 240 
> seconds or so.
>
> The clients definitely see MUCH faster performance when access a local 
> copy instead of a small share of the performance/bandwidth of a central 
> file server.
>
> Do you think it's worth bundling up for others to use?
>
> This is how it works:
> 1) User runs publish <directory> <name> before they start submitting
>     jobs.
> 2) The publish command makes a torrent of that directory and starts
>     seeding that torrent.
> 3) The user submits an arbitrary number of jobs that needs that
>     directory.  Inside the job they "$ subscribe <name>"
> 4) The subscribe command launches one torrent client per node (not per j
>     job) and blocks until the directory is completely downloaded
> 5) /scratch/<user>/<name> has the users data
>
> Not nearly as convenient as having a fast parallel filesystem, but seems 
> potentially useful for those who have large read only datasets, GigE and 
> NFS.
>
> Thoughts?
>
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf
>


More information about the Beowulf mailing list