| Title | Integration of GridFTP with Freeloader storage system |
|---|---|
| Student | Hesam Ghasemi |
| Mentor | Rajkumar Kettimuthu |
| Abstract | |
| Scientific experiments produce large volumes of data which require a cost-conscious data stores, as well as reliable data transfer mechanisms. GridFTP is a high-performance, secure, reliable data transfer protocol optimized for high-bandwidth wide-area networks. GridFTP, however, assumes the support of a high-performance parallel file system, a relatively expensive resource. FreeLoader is a storage system that aggregates idle storage space from workstations connected within a local area network to build a low-cost, yet high-performance data store. FreeLoader breaks files into chunks and distributes them across storage nodes thus enabling parallel access to files. A central manager keeps track of file meta-data as well as of the location of the chunks associated with each file. This project will integrate Globus project’s GridFTP implementation and FreeLoader to reduce the cost and increase the performance of GridFTP deployments. The integration of these two opens-source systems system will address the following main problems. First, FreeLoader storage nodes will be exposed as GridFTP data transfer processes (DTPs). Second, the assumption the current GridFTP implementation makes, namely that all data is available at all DTPs will be relaxed by integrating the GridFTP server and FreeLoader managed data location mechanisms. Finally, load balancing mechanisms will be added to the GridFTP server implementation to match FreeLoader’s ability to stripe and replicate data across multiple nodes. The fact that at a Freeloader-supported GridFTP site files are spread over multiple FreeLoader nodes (exposed as GridFTP DTPs) implies that the integration will need to orchestrate multiple connections to execute a file transfer. The current implementation of GridFTP is not able to handle cases where the number of DTPs on the receiver and sender side does not match. For instance, for a single client accessing a GridFTP server with N DTPs, the server will need manage the connections such that a single server DTP will connect to the client at a time. Once the first DTP has finished its transfer, the second server DTP will connect to the client and execute its transfer. The same mechanism can be applied to the cases where the client server node relationship is N-to-M. This mechanism has the following advantages: the load is balanced between the DTP nodes, and can support FreeLoader data layout where file chunks are stored on each DTP. The design and implementation requirements include: code changes to either system should be minimal to enable future integration with the mainstream GridFTP/FreeLoader code, GridFTP client code changes should be avoided, and the integration components should be implemented in C since both FreeLoader and GridFTP are implemented in C. | |
Tuesday, May 20, 2008
google summer code project: Integration of GridFTP with Freeloader storage system
Computational Biology On The Grid: Decoupling Computation And I/O With ParaMEDIC
Computational Biology On The Grid: Decoupling Computation And I/O With ParaMEDIC
CCT talk:
http://www-unix.mcs.anl.gov/~balaji/#publications
Abstract:
Many large-scale computational biology applications simultaneously rely on multiple resources for efficient execution. For example, such applications may require both large compute and storage resources; however, very few supercomputing centers can provide large quantities of both. Thus, data generated at the compute site oftentimes has to be moved to a remote storage site for either storage or visualization and analysis. Clearly, this is not an efficient model, especially when the two sites are distributed over a Grid. In this talk, I'll present a framework called "ParaMEDIC: Parallel Metadata Environment for Distributed I/O and Computing'' which uses application-specific semantic information to convert the generated data to orders-of-magnitude smaller metadata at the compute site, transfer the metadata to the storage site, and re-process the metadata at the storage site to regenerate the output. Specifically, ParaMEDIC trades a small amount of additional computation (in the form of data post-processing) for a potentially significant reduction in data that needs to be transferred in distributed environments. The ParaMEDIC framework allowed us to use nine different supercomputers distributed within the U.S. to sequence-search the entire microbial genome database against itself and store the one petabyte of generated data at Tokyo, Japan.
GENI - The Global Environment For Networking Innovations Project
GENI - The Global Environment For Networking Innovations Project
CCT talks: Chip Elliott, BBN Technologies And GENI PI/PD/Chief Engineer
http://www.geni.net/
Abstract:
GENI is an experimental facility called the Global Environment for Network Innovation. GENI is designed to allow experiments on a wide variety of problems in communications, networking, distributed systems, cyber-security, and networked services and applications. The emphasis is on enabling researchers to experiment with radical network designs in a way that is far more realistic than they can today. Researchers will be able to build their own new versions of the “net” or to study the “net” in ways that are not possible today. Compatibility, with the Internet is NOT required. The purpose of GENI is to give researchers the opportunity to experiment unfettered by assumptions or requirements and to support those experiments at a large scale with real user populations.
GENI is being proposed to NSF as a Major Research and Equipment Facility Construction (MREFC) project. The MREFC program is NSF’s mechanism for funding large infrastructure projects. NSF has funded MREFC projects in a variety of fields, such as the Laser Interferometer Gravitational Wave Observatory (LIGO), but GENI would be the first MREFC project initiated and designed by the computer science research community.
Friday, May 16, 2008
MOPS (Managed Object Placement Service)
http://www.globus.org/toolkit/data/gridftp/mops.html
MOPS (Managed Object Placement Service) is an enhancement to the Globus GridFTP server that allows you to manage some of the resources needed for the data transfer in a more efficient way.
MOPS 0.1 release includes the following:
- GFork - This is a service like inetd that listens on a TCP port and runs a configurable executable in a child process whenever a connection is made. GFork also creates bi-directional pipes between the child processes and the master service. These pipes are used for interprocess communication between the child process executables and a master process plugin. More information on GFork can be found here.
- GFork master plugin for GridFTP - This master plugin provides enhanced functionality such as dynamic backend registration for striped servers, managed system memory pools and internal data monitoring for both striped and non striped servers. More information on the GridFTP master plugin and information on how to run the Globus GridFTP server with GFork can be found here.
- Storage usage enforcement using Lotman - All data sent to a Lotman-enabled GridFTP server and written to the Lotman root directory will be managed by Lotman. Information on how to configure Lotman and run it with the Globus GridFTP server can be found here.
- Pipelining data transfer commands - GridFTP is a command response protocol. A client sends one command and then waits for a "Finished response" before sending another. Adding this overhead on a per-file basis for a large data set partitioned into many small files makes the performance suffer. Pipelining allows the client to have many outstanding, unacknowledged transfer commands at once. Instead of being forced to wait for the "Finished response" message, the client is free to send transfer commands at any time. Pipelining is enabled by using the
-ppoption withglobus-url-copy.
Wednesday, May 14, 2008
GRIDS Lab Topics Related Thesis/Dissertations World-Wide
http://www.gridbus.org/grids_thesis.html
- Daniel Colin Vanderster, Resource Allocation and Scheduling Strategies on Computational Grids, Ph.D. Thesis, University of Victoria, February 2008.
- SungJin Choi, Group-based Adaptive Scheduling Mechanism in Desktop Grid, Ph.D. Thesis, Korea University, June 2007.
- Bjorn Schnizler, Resource Allocation in the Grid : A Market Engineering Approach, Ph.D. Thesis, Karlsruhe University, 2007.
- Dang Minh Quan, A Framework For SLA-Aware Execution of Grid-Based Workflows,Ph.D. Thesis, Informatik und Mathematik der Universitaet, November 2006.
- Tummalapalli Sudhamsh Reddy, Bridging Two Grids: The SAM-Grid / LCG integration Project, Thesis of Master in Computing Science, The University of Texas, Arlington, May 2006.
- Flavia Donno, Storage Management and Access in WLHC Computing Grid, Ph.D. Thesis, University of Pisa, 2006.
- Patricia Kayser Vargas Mangan, GRAND: A Model for Hierarchical Application Management in Grid Computing Environment, Ph.D. Thesis, COPPE/Federal University of Rio de Janeiro, Brazil, March 2006.
- Anoop Rajendra, Integration of the SAM-Grid Infrastructure to the DZero Data Reprocessing Effort, Thesis of Master in Computing Science, The University of Texas, Arlington, December 2005.
- Bimal Balan, Enhancements to the SAM-Grid Infrastructure, Thesis of Master in Computing Science, The University of Texas, Arlington, December 2005.
- Tevfik Kosar, Data Placement in Widely Distributed Systems, Ph.D. Thesis, University of Wisconsin-Madison, August 2005.
- Aditya Nishandar, Grid-Fabric Interface For Job Management In Sam-Grid, A Distributed Data Handling And Job Management System For High Energy Physics Experiments, Thesis of Master in Computing Science, The University of Texas, Arlington, December 2004.
- Sankalp Jain, Abstracting the hetereogeneities of computational resources in the SAM-Grid to enable execution of high energy physics applications, Thesis of Master in Computing Science, The University of Texas, Arlington, December 2004.
- Gurmeet Singh Manku, Dipsea: A Modular Distributed Hash Table, Ph.D. Thesis, Stanford University, August 2004.
- Adriana Ioana Iamnitchi, Resource Discovery in Large Resource-Sharing Environments, Ph.D. Dissertation, The University of Chicago, December 2003.
- Michal Karczmarek, Constrained and Phased Scheduling of Synchronous Data Flow Graphs for StreamIt Language, Thesis of Master of Science in CS, Massachusetts Institute of Technology(MIT), USA, December 2002.
- Abhishek S. Rana, A globally-distributed grid monitoring system to facilitate HPC at D0/SAM-Grid (Design, development, implementation and deployment of a prototype), Thesis of Master in Computing Science, The University of Texas, Arlington, Nov. 2002.
- Akiko Nakaniwa, Optimal Design of System Resource Management for Distributed Networks. Ph. D Dissertation, Department of Electronics Engineering, Faculty of Engineering, Kansai University, March 2002.
- Rajkumar Buyya, Economic-based Distributed Resource Management and Scheduling for Grid Computing, Ph.D. Thesis, Monash University, Melbourne, Australia, April 12, 2002.
- Carlos A. Varela, Worldwide Computing with Universal Actors: Linguistic Abstractions for Naming, Migration, and Coordination, Ph.D. Thesis, University of Illinois at Urbana-Champaign, 2001.
- Heinz Stockinger, Database Replication in World-Wide Distributed Data Grids, Institute of Computer Science and Business Informatics, University of Vienna, Austria, November 2001.
- Heinz Stockinger, Multi-Dimensional Bitmap Indices for Optimising Data Access within Object Oriented Databases at CERN, University of Vienna, Austria, November 2001.
- Luis F.G. Sarmenta, Volunteer Computing, Ph.D. Thesis, Massachusetts Institute of Technology(MIT), USA, June 2001.
- Jonathan Bredin, Market-based Control of Mobile Agents, Ph.D. Thesis, Dartmouth College, Hanover, NH, USA, June 2001.
- Andrea Carol Arpaci-Dusseau, Implicit Coscheduling: Coordinated Scheduling with Implicit Information in Distributed Systems, PhD thesis, University of California at Berkeley, December 1998.
- Daniel M. Zimmerman, A Preliminary Investigation into Dynamic Distributed Workflow,M.S. Thesis, California Institute of Technology, May 1998.
Sunday, May 11, 2008
GROMACS Flow Chart
| VERSION 3.3 |
This is a flow chart of a typical GROMACS MD run of a protein in a box of water. A more detailed example is available in the Getting Started section. Several steps of energy minimization may be necessary, these consist of cycles: grompp -> mdrun.
| eiwit.pdb | ![]() | ||||||||
| Generate a GROMACS topology | pdb2gmx | ![]() | |||||||
![]() | ![]() | ||||||||
| conf.gro | topol.top | ||||||||
![]() | ![]() ![]() ![]() ![]() ![]() | ||||||||
| Enlarge the box | editconf | ![]() | |||||||
![]() | |||||||||
| conf.gro | |||||||||
![]() | |||||||||
| Solvate protein | genbox | ![]() | |||||||
![]() | ![]() | ||||||||
| conf.gro | topol.top | ||||||||
| grompp.mdp | ![]() | ![]() | ![]() | ||||||
| Generate mdrun input file | grompp | ![]() | |||||||
![]() | ![]() | Continuation | |||||||
| topol.tpr | ![]() | tpbconv | | traj.trr | |||||
![]() | ![]() ![]() | ||||||||
| Run the simulation (EM or MD) | mdrun | ![]() | ![]() ![]() | ||||||
![]() | ![]() | ||||||||
| traj.xtc | ener.edr | ||||||||
![]() | ![]() | ||||||||
| Analysis | g_... ngmx | g_energy | ![]() | ||||||
Computational Biomolecular Dynamics Group
http://www.mpibpc.mpg.de/groups/de_groot/
We carry out computer simulations of biological macromolecules to study the relationship between dynamics and function.
Using molecular dynamics simulations and other computational tools we predict the dynamics and flexibility of proteins, membranes, carbohydrates and polynucleotides to study biological function and dysfunction at the atomic level.
![]() |
Randomly picked image from current research. Reload this page to updat
GROMACS
http://wiki.gromacs.org/index.php/Main_Page
he 5 latest News
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||
System Biology
| ||||||||||||||
Saturday, May 10, 2008
Phil Dykstra's nuttcp quick start guide
Phil Dykstra's nuttcp quick start guide
nuttcp is a TCP/UDP network testing tool, much like iperf. I think it's the best such tool available, for its simplicity, ease of use, and feature set.
Getting nuttcp
Official Site: http://www.lcp.nrl.navy.mil/nuttcp/ (html)
Official Site: ftp://ftp.lcp.nrl.navy.mil/pub/nuttcp/ (ftp)
Local copies: http://www.wcisd.hpc.mil/nuttcp/
Compiling/Installing nuttcp
Compiling nuttcp for unix/linux should be easy:cc -O3 -o nuttcp nuttcp-5.5.5.cI copy it to /usr/local/bin/nuttcp but you could put it anywhere. It does NOT need any special permissions to run.
To run nuttcp manually
On one system (or both), run nuttcp -S. This starts a server that will wait for connections. On the other system, try commands like:nuttcp hostname (transmits to hostname)type "nuttcp" to see lots of options. Most useful:
nuttcp -r hostname (receives from hostname)
-i1 to watch tests run (1 second intervals)
-w8m to set socket buffers ("window") to 8 MBytes
-u for UDP tests
-R10m for a 10 Mbps UDP test (or TCP rate limit)
-l512 to set UDP packet length (or TCP write size)
With servers running on remote machines you can also do third party tests:
nuttcp host1 host2
To start nuttcp from xinetd
- Copy nuttcp4 and nuttcp6 to /etc/xinetd.d/ (these are in the xinetd.d subdirectory on this server)
- Make sure "nuttcp" is in your /etc/services file:
nuttcp 5000/tcp
This tells xinetd what port to listen on for the "nuttcp" service.
nuttcp-data 5001/tcp - Enable the services:
chkconfig nuttcp4 on
If you don't have or don't want IPv6, only enable nuttcp4.
chkconfig nuttcp6 on - Reload xinetd killall -HUP xinetd
Note on IPv6 and old xinetd's:
Modern xinetd's can listen for IPv4 and IPv6 services on the same port. Old ones (e.g. Redhat 8.0) can't. I'm not sure when this changed. For old systems just use the nuttcp file for xinetd.d. If you also want IPv6 you will have to start another service on a different port.
Optional nuttcp server access control
You can use /etc/hosts.allow and /etc/hosts.deny if you are starting nuttcp from xinetd. And/or you can use iptables to restrict access to the control port (default 5000).nuttcp on Windows
Try one of the zip files. Unzip it and run nuttcp from that directory. These were compiled with cygwin. A cygwin dll is included in the zip file. If you get IPv6 errors, try the version that says "noipv6".Example Run
host1$ nuttcp -i1 -w8m host2
83.1246 MB / 1.00 sec = 699.7341 Mbps
118.0095 MB / 1.00 sec = 990.0559 Mbps
118.0095 MB / 1.00 sec = 990.0886 Mbps
118.0009 MB / 1.00 sec = 989.9823 Mbps
118.0095 MB / 1.00 sec = 990.0718 Mbps
118.0095 MB / 1.00 sec = 990.0757 Mbps
118.0009 MB / 1.00 sec = 989.9744 Mbps
118.0095 MB / 1.00 sec = 990.0807 Mbps
118.0095 MB / 1.00 sec = 990.0896 Mbps
118.0009 MB / 1.00 sec = 989.9893 Mbps
1157.4375 MB / 10.10 sec = 961.4075 Mbps 16 %TX 10 %RX
This shows a 10 second TCP test from host1 to host2 with a window size of 8 MBytes. It ran at 990 Mbps (GigE with 9000 byte jumbo frames) most of the time. The first second or two is often slower due to TCP slow start. The average for the entire test was 961 Mbps. During each second it sent ~118 MBytes. The percentages at the end mean that nuttcp consumed 16% of the CPU on the transmitter (host1) and 10% of the CPU on the receiver (host2). They are useful for telling if you were CPU limited and should not be confused as packet loss or retransmits.
Phil Dykstra
April 2007
ttcp/nttcp/nuttcp/iperf
http://sd.wareonearth.com/~phil/net/ttcp/
ttcp/nttcp/nuttcp/iperf versions
ttcp was one of the first TCP throughput testing tools ever written. It was created by Mike Muuss at BRL to compare the performance of TCP stacks by U.C. Berkeley and BBN to help DARPA decide which version to place in the first BSD Unix release (Berkeley won). The name stands for "Test TCP", but it also supports UDP testing. Many variations have since been created with different defaults, new options, ports to new systems, etc.
What does the reported data rate really mean?
All variations of ttcp/iperf report payload or user data rates, i.e. no overhead bytes from headers (TCP, UDP, IP, etc.) are included in the reported data rates. When comparing to "line" rates or "peak" rates, it is important to consider all of this overhead. It is also important to understand what the tools mean by "K" or "M" bits or bytes per second. Versions of the tools differ on this point.
Computer memory is measured in powers of two, e.g. 1 KB = 2^10 = 1024 bytes; 1 MB = 2^20 = 1024*1024 = 1048576 bytes. Data communication rates however should always be stated in simple bits per second. For example "100 megabit ethernet" can send exactly 100,000,000 bits per second.
- K and M in ttcp/nttcp/iperf
- ttcp original: K = 1024 (M is not used)
- nttcp: K = 1024, M = 1000*1024
- iperf 1.1.1 and earlier: K = 1024, M = 1024*1024
- iperf 1.2 and above: K=1000, M=1000000
- nuttcp: K=1000, M=1000000
Differnet Versions
ttcp original
(source code)RCSid[] = "@(#)$Header: ttcp.c,v 1.10 87/09/02 23:26:36 mike Exp $ (BRL)"
Usage: ttcp -t [-options] hostExample run:-l## length of bufs written to network (default 1024)
-s source a pattern to network
-n## number of bufs written to network (-s only, default 1024)
-p## port number to send to (default 2000)
-u use UDP instead of TCP
Usage: ttcp -r [-options] >out
-l## length of network read buf (default 1024)
-s sink (discard) all data from network
-p## port number to listen at (default 2000)
-B Only output full blocks, as specified in -l## (for TAR)
-u use UDP instead of TCP
% ttcp -r -sIt is also worth noting that the "bytes processed" number can wrap for large data transfers.
ttcp-r: nbuf=1024, buflen=1024, port=2000
ttcp-r: socket
ttcp-r: accept
ttcp-r: 0.0user 0.5sys 0:10real 5% 0i+0d 0maxrss 0+0pf 0+0csw
ttcp-r: 74891264 bytes processed
ttcp-r: 0.54 CPU sec = 135437 KB/cpu sec, 1.0835e+06 Kbits/cpu sec
ttcp-r: 10.067 real sec = 7264.92 KB/real sec, 58119.3 Kbits/sec
nttcp
(source code)Created by someone at Silicon Graphics (SGI), it added the important option (-w) to set the transmit and receive window size (actually socket buffer sizes, which indirectly set the window size). It also changed several things:
- changed default nbuf (-n) from 1024 to 2048
- changed default buflen (-l) from 1024 to 65536
- changed default port (-p) from 2000 to 5001
- added window size (-w) option
- added TCP nodelay (-D) option
- reversed the meaning of (-s) source/sink option!
The default buffer length increase to 65536 was probably an attempt to maximize performance by reducing the number of write system calls. I have found however that on modern systems larger buffers are not always faster because they may not fit in cache memory as well. Somewhere around 8kB seems like a good value in my experience for todays hardware.
The change in default port and the meaning of -s is unfortunate. At least the author changed the program name. Others however have created "ttcp" programs that also have these changes. iperf and nuttcp continued nttcp's use of port 5001.
Usage: ttcp -t [-options] host [Example run:-l## length of bufs written to network (default 8192)
-s don't source a pattern to network, use stdin
-n## number of source bufs written to network (default 2048)
-p## port number to send to (default 5001)
-u use UDP instead of TCP
-D don't buffer TCP writes (sets TCP_NODELAY socket option)
-L set SO_LONGER socket option
Usage: ttcp -r [-options >out]
-l## length of network read buf (default 8192)
-s don't sink (discard): prints all data from network to stdout
-p## port number to listen at (default 5001)
-B Only output full blocks, as specified in -l## (for TAR)
-u use UDP instead of TCP
% ./nttcp -r
ttcp-r: buflen=65536, nbuf=2048, port=5001 tcp
ttcp-r: socket
ttcp-r: accept from 127.0.0.1
send window size = 65535
receive window size = 65535
ttcp-r: 455426048 bytes in 10.05 real seconds = 44243.41 KB/sec = 353.9473 Mb/s
ttcp-r: 55550 I/O calls, msec/call = 0.19, calls/sec = 5526.05
ttcp-r: 0.0user 2.5sys 0:10real 25% 0i+0d 0maxrss 0+14pf 0+0csw
nuttcp
ftp://ftp.lcp.nrl.navy.mil/pub/nuttcp/
One of the best! Highly recommended. The author calls it n-u-t-t-c-p, but many of us affectionately call it nut-c-p. nuttcp can run as a server and passes all output back to the client side, so you don't need an account on the server side to see the results.
Usage: nuttcp or nuttcp -h prints this usage info
Usage: nuttcp -V prints version info
Usage: nuttcp -xt [-m] host forward and reverse traceroute to/from server
Usage (transmitter): nuttcp -t [-options] host [3rd-party] [out]
-4 Use IPv4
-6 Use IPv6
-l## length of network read buf (default 8192/udp, 65536/tcp)
-s don't sink (discard): prints all data from network to stdout
-n## number of bufs for server to write to network (default 2048)
-w## receiver window size in KB (or (m|M)B or (g|G)B)
-ws## server transmit window size in KB (or (m|M)B or (g|G)B)
-wb braindead Solaris 2.8 (sets both xmit and rcv windows)
-p## port number to listen at (default 5001)
-P## port number for control connection (default 5000)
-B Only output full blocks, as specified in -l## (for TAR)
-u use UDP instead of TCP
-m## use multicast with specified TTL instead of unicast (UDP)
-N## number of streams (starting at port number), implies -B
-R## server transmit rate limit in Kbps (or (m|M)bps or (g|G)bps)
-T## server transmit timeout in seconds (or (m|M)inutes or (h|H)ours)
-i## client interval reporting in seconds (or (m|M)inutes)
-Ixxx identifier for nuttcp output (max of 40 characters)
-F flip option to reverse direction of data connection open
-xP## set nuttcp process priority (must be root)
-d set TCP SO_DEBUG option on data socket
-v[v] verbose [or very verbose] output
-b brief output (default)
Usage (server): nuttcp -S [-options]
note server mode excludes use of -s
-4 Use IPv4 (default)
-6 Use IPv6
-1 oneshot server mode (implied with inetd/xinetd), implies -S
-P## port number for server connection (default 5000)
note don't use with inetd/xinetd (use services file instead)
-xP## set nuttcp process priority (must be root)
--no3rdparty don't allow 3rd party capability
--nofork don't fork server
Format options:
-fxmitstats also give transmitter stats (MB) with -i (UDP only)
-frunningtotal also give cumulative stats on interval reports
-f-drops don't give packet drop info on brief output (UDP)
-f-percentloss don't give %loss info on brief output (UDP)
-fparse generate key=value parsable output
iperf
http://dast.nlanr.net/Projects/Iperf/
% iperf -vExample run:
iperf version 1.1.1 (23 Feb 2000) pthreads
% iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[ 6] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 3639
[ ID] Interval Transfer Bandwidth
[ 6] 0.0-10.0 sec 421 MBytes 336 Mbits/sec
P. Dykstra, phil@sd.wareonearth.com, March 2001 (update March 2004)
Friday, April 25, 2008
Data: How to Initiate Transfers: GridFTP Clients
GridFTP is a high-performance, secure, reliable data transfer protocol optimized for high-bandwidth, wide-area networks. TeraGrid has three clients which utilize gridFTP (click on the client name to see more information and examples of that method):
http://www.teragrid.org/userinfo/data/gridftp.phphttp://www.teragrid.org/userinfo/data/
Tuesday, April 22, 2008
The evolution of storage systems
| by R. J. T. Morris and B. J. Truskowski | |||
|
|
http://www.research.ibm.com/journal/sj/422/morris.html
Monday, April 14, 2008
Google Summer of Code
Google Summer of Code 2008 is on! Over the past three years, the program has brought together over 1500 students and 2000 mentors from 90 countries worldwide, all for the love of code. We look forward to welcoming more new contributors and projects this year.
** Globus: Google Summer of Code 2008 Ideas
New execution and data transfer providers
Globus project: Swift
Description: The Java CoG kit provides an abstraction for process execution and file transfer (for example, local execution, local filesystem copy, over ssh/scp, GridFTP, GRAM2, GRAM4, direct submission to the PBS scheduling system). Execution and transfer providers can then be used by higher level applications such as Swift in order to move data to execution sites and to perform application execution without needing to be particularly aware of how that execution and transfer is happening. An interesting project might be to implement a provider for some existing execution or transfer mechanisms so that they could be used as part of CoG.
Requires: Decent Java programming skills. A favourite execution or data transfer mechanism
Mentor: Ben Clifford
Integration of GridFTP with Freeloader storage system
Globus project: GridFTP
Description: GridFTP is a high-performance, secure, reliable data transfer protocol optimized for high-bandwidth wide-area networks. It is based on the Internet FTP protocol, and it defines extensions for high performance operation and security. Striped data transfer (aka cluster-to-cluster data transfer) is a key feature that utilizes multiple CPUs and NICs to achieve higher performance. In striped mode, however, GridFTP assumes the support of a high-performance parallel file system, a relatively expensive resource. Freeloader is a storage system that aggregates the idle storage space from workstations connected to a local area network to build a high-performance data store. FreeLoader breaks files into chunks and distributes these chunks across the storage nodes. This accelerates read/write operations as they can benefit from the parallel access to multiple disks. This project aims to integrate GridFTP and FreeLoader to reduce the cost and increase the performance of GridFTP deployments.
Links related to this project
** Project Ideas from the Ohio Supercomputer Center
- Improved scalability in pbsdcp scatter implementation
Mentor: Troy Baer
Programming Language(s): Perl, C with MPI
License: GPLpbsdcp is a distributed copy command for PBS and TORQUE batch environments that is part of OSC's pbstools package. It is used to copy files between shared directories (e.g. NFS home directories) and local storage on a set of compute nodes (e.g. /tmp). It has two modes of operation: scatter, in which files in a shared directory are copied into local file systems on each of the compute nodes; and gather, in which files in local file systems on each of compute nodes are collected into a shared directory
The scatter mode in pbsdcp is currently implemented in a rather naive fashion: for each node, it forks an rcp on the source files with a destination directory on that node's local storage. This means that the amount of data which must be transferred from the shared storage scales linearly with the number of nodes. We would like to replace that implementation with something more scalable, such as a tree-based or store-and-forward distribution scheme. Moreover, we would like this to use MPI for communication between nodes if possible, so that the high-performance Infiniband and Myrinet networks in our (and similar) clusters will be used for as much of the data transfer as possible.
- Improved scalability in all
Mentor: Rick Mohr
Programming Langauge(s): C
License: GPLall is a distributed shell command built on top of rsh used by OSC and other sites. It allows commands to be run on either all or an arbitrary subset of the nodes in a cluster, either sequentially or in parallel.
The parallel mode of all currently has a scalability problem on clusters larger than about 200 nodes. Because all uses rsh and rsh wants to use privileged ports (i.e. port numbers below 1024), parallel executions of all run out of the necessary ports for node counts above 200 or so. One solution to this problem would be "chunking" or "batching"; that is, starting up at most a fixed number (say 128) of rsh connections and then only starting more once the first few rshes have completed. (Similar logic can be seen in OSC's parallel command processor.)
Alternately, a project to add some of all's features, such as its relatively simple syntax and PBS/TORQUE integration, to another distributed shell command such as pdsh would also be considered.
- Improved scalability in all
** dev:sahana_gsoc08_ideas
SystemTap
SystemTap provides free software (GPL) infrastructure to simplify the gathering of information about the running Linux system. This assists diagnosis of a performance or functional problem. SystemTap eliminates the need for the developer to go through the tedious and disruptive instrument, recompile, install, and reboot sequence that may be otherwise required to collect data.
SystemTap provides a simple command line interface and scripting language for writing instrumentation for a live running kernel. We are publishing samples, as well as enlarging the internal "tapset" script library to aid reuse and abstraction. We also plan to support probing userspace applications. We are investigating interfacing Systemtap with similar tools such as Frysk, Oprofile and LTT.
Current project members include Red Hat, IBM, Intel, and Hitachi.
Scripts & Toolshttp://sourceware.org/systemtap/wiki/ScriptsTools
Sunday, April 6, 2008
DTrace Network Providers
from : http://opensolaris.org/os/community/dtrace/NetworkProvider/
The following is a design proposal for a collection of DTrace Networking Providers. These providers aim to provide networking observability and troubleshooting information for Solaris users. The first prototype TCP provider was demonstrated at CEC 2006.
#dtrace -n 'tcp:::receive /args[2]->tcp_dport == 80/ {
@pkts[args[1]->ip_daddr] = count();
}'
dtrace: description 'tcp:::receive' matched 1 probe
^C
192.168.1.8 9
fe80::214:4fff:fe3b:76c8 12
192.168.1.51 32
10.1.70.16 83
192.168.7.3 121
192.168.101.101
Friday, April 4, 2008
more DTrace
Brendan Gregg's Homepage
Top Ten DTrace (D) Scripts
DTrace is a comprehensive and flexible dynamic tracing facility built into the Solaris Operating System. DTrace allows dynamic instrumentation of a running Solaris system, which can assist with answering questions like "which process is chewing up CPU 38," or "which user is causing the cross-call activity on CPU 6," or "which setuid binaries are being executed?"
DTrace uses a scripting language called "D," which uses a syntax very similar to C and Awk. Several amazing D scripts have been developed and distributed through the Internet, so I thought I would share my favorite D scripts in a Letterman like "Top 10" format:
http://prefetch.net/articles/solaris.dtracetopten.htmlObserving I/O Behavior with the DTraceToolkit
http://prefetch.net/articles/observeiodtk.htmlDTrace user's guide http://docs.sun.com/app/docs/doc/817-6223/
DTrace Toolkit http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/
DTrace presentation [FIRST look at this]
http://www.nbl.fi/~nbl97/solaris/dtrace/dtt_present.pdf
OpenSolaris Community: DTrace
OpenSolaris Community: DTrace
http://www.opensolaris.org/os/community/dtrace/
Endorsed projects
Chime Visualization Tool for DTraceDTrace Provider for NFSv4
Mozilla DTrace
An Overview of DTrace
DTrace is a comprehensive dynamic tracing framework for the Solaris™ Operating Environment. DTrace provides a powerful infrastructure to permit administrators, developers, and service personnel to concisely answer arbitrary questions about the behavior of the operating system and user programs.
The Solaris™ Dynamic Tracing Guide describes how to use DTrace to observe, debug and tune system behavior. The Solaris™ Dynamic Tracing (DTrace) Guide (here
), also includes a complete reference for bundled DTrace observability tools and the D programming language.
For Users:
- dynamically enable and manage thousands of probes
- dynamically associate predicates and actions with probes
- dynamically manage trace buffers and probe overhead
- examine trace data from a live system or from a system crash dump
For Solaris™ Developers:
- implement new trace data providers that plug into DTrace
- implement trace data consumers that provide data display
- implement tools that configure DTrace probes
No Bad Dogs - DTrace - Bryan Cantrill
No Bad Dogs How to Make a Dog-Slow System Sit Up and Speak
--from WIKI
Bryan M. Cantrill is an engineer at Sun Microsystems. Cantrill graduated from Brown University, B.Sc. in computer science. He was born in Colorado where he attained the rank of Eagle Scout.
In 2005 Bryan Cantrill was named one of the 35 Top Young Innovators by Technology Review, MIT's magazine. Cantrill was included in the









The Human Proteome Folding Project will use the computer power of millions of computers to predict the shape of Human proteins for which researchers currently know little. From this shape scientists hope to learn about the function of these proteins, as the shape of proteins is inherently related to how they function in our bodies. This database of protein structures and putative functions will let scientists take the next steps understanding how diseases that involve these proteins work and ultimately how to cure them.















Hydrophobic (oily): orange