Difference between revisions of "CineGrid"
From Immersive Visualization Lab Wiki
(→Copying large files over multi-gigabit networks) |
(→Streaming high resolution video over multi-gigabit networks) |
||
(8 intermediate revisions by one user not shown) | |||
Line 6: | Line 6: | ||
* Optimize network settings: | * Optimize network settings: | ||
− | |||
** Change maximum UDP buffer size (read and write) on sender and receiver: edit /proc/sys/net/core/rmem_max and /proc/sys/net/core/wmem_max. The number in the files determines the buffer size in bytes. We suggest the size to be 16MB (=16777216 bytes) for each of the buffers, which is the maximum allowed size. | ** Change maximum UDP buffer size (read and write) on sender and receiver: edit /proc/sys/net/core/rmem_max and /proc/sys/net/core/wmem_max. The number in the files determines the buffer size in bytes. We suggest the size to be 16MB (=16777216 bytes) for each of the buffers, which is the maximum allowed size. | ||
+ | ** Set buffer sizes in sendfile.cpp and recvfile.cpp, before the sockets connect with the "UDT::connect" command: | ||
+ | <pre> | ||
+ | int feng_temp=256000; | ||
+ | UDT::setsockopt(serv,0,UDP_SNDBUF,&feng_temp, sizeof(int)); | ||
− | + | int feng_mss=8800; | |
+ | UDT::setsockopt(serv,0,UDT_MSS ,&feng_mss, sizeof(int)); | ||
+ | |||
+ | int feng_recvbuf=40960000; | ||
+ | UDT::setsockopt(serv,0,UDP_RCVBUF,&feng_recvbuf,sizeof(int)); | ||
+ | </pre> | ||
* The following commands are called from the directory udt3.3/app/ | * The following commands are called from the directory udt3.3/app/ | ||
Line 23: | Line 31: | ||
==Streaming high resolution video over multi-gigabit networks== | ==Streaming high resolution video over multi-gigabit networks== | ||
+ | |||
+ | Our software solution is based on [http://udt.sourceforge.net/ UDT] and NCSA's bulk movie playback package (bplay). | ||
+ | |||
+ | * Get UDTStreaming.tar.gz from Leo or Jurgen | ||
+ | |||
+ | * Configure the buffer sizes just like above for file transfers | ||
+ | |||
+ | * Run video server program, for example on jpeg2ksvr:/workspace/origudt/udt3.3/app: | ||
+ | |||
+ | ./sendfile 12222 | ||
+ | |||
+ | * Run video client (renderer), for example on chert in ~sliu/BFT/udt3/app: | ||
+ | |||
+ | Syntax: | ||
+ | ./recvfile <IP address> <port number> <remote video file name> <local video file name> | ||
+ | Example: | ||
+ | ./recvfile jpeg2ksvr 12222 /data/NCSA/bmv/brant.bmv /tmp/sliu/tmp/bmv | ||
+ | |||
+ | * The script ./deploy.sh kills all existing processes and runs the receiver as above |
Latest revision as of 10:37, 14 June 2007
Team members: Jurgen Schulze, Shaofeng (Leo) Liu
Copying large files over multi-gigabit networks
- Download latest version of UDT file transfer tool. The version we have been using is http://ivl.calit2.net/wiki/files/revisedudt3.3.tar.gz. Untar and unzip the file to a directory of your choice.
- Optimize network settings:
- Change maximum UDP buffer size (read and write) on sender and receiver: edit /proc/sys/net/core/rmem_max and /proc/sys/net/core/wmem_max. The number in the files determines the buffer size in bytes. We suggest the size to be 16MB (=16777216 bytes) for each of the buffers, which is the maximum allowed size.
- Set buffer sizes in sendfile.cpp and recvfile.cpp, before the sockets connect with the "UDT::connect" command:
int feng_temp=256000; UDT::setsockopt(serv,0,UDP_SNDBUF,&feng_temp, sizeof(int)); int feng_mss=8800; UDT::setsockopt(serv,0,UDT_MSS ,&feng_mss, sizeof(int)); int feng_recvbuf=40960000; UDT::setsockopt(serv,0,UDP_RCVBUF,&feng_recvbuf,sizeof(int));
- The following commands are called from the directory udt3.3/app/
- Run the sender:
./sendfile
- Run the receiver:
Syntax: ./recvfile <IP address/hostname of sender> <port number> <remote source file name> <local destination file name> Example: ./recvfile 127.0.0.1 9000 /home/jschulze/data/largefile.tif ./temp.tif
Streaming high resolution video over multi-gigabit networks
Our software solution is based on UDT and NCSA's bulk movie playback package (bplay).
- Get UDTStreaming.tar.gz from Leo or Jurgen
- Configure the buffer sizes just like above for file transfers
- Run video server program, for example on jpeg2ksvr:/workspace/origudt/udt3.3/app:
./sendfile 12222
- Run video client (renderer), for example on chert in ~sliu/BFT/udt3/app:
Syntax: ./recvfile <IP address> <port number> <remote video file name> <local video file name> Example: ./recvfile jpeg2ksvr 12222 /data/NCSA/bmv/brant.bmv /tmp/sliu/tmp/bmv
- The script ./deploy.sh kills all existing processes and runs the receiver as above