Friday, April 25, 2008
Data: How to Initiate Transfers: GridFTP Clients
http://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
** 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 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
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 TR35 list for his development of DTrace, a function of the OS Solaris 10 that provides a non-invasive means for real-time tracing and diagnosis of software.
from [http://en.wikipedia.org/wiki/DTrace]
DTrace is a comprehensive dynamic tracing framework created by Sun Microsystems. It was released under the Common Development and Distribution License (CDDL) in January 2005 and included in Sun's Solaris 10 for troubleshooting system problems in real time. DTrace was the first component of the OpenSolaris project to have its source code released under the CDDL.
DTrace is designed to give operational insights that allow users to tune and troubleshoot applications and the OS itself. Special consideration has been taken to make it safe to use in a production environment. For example, there is minimal probe effect when tracing is underway, and no performance impact associated with any disabled probe; this is important since there are tens of thousands of DTrace probes that can be enabled.
Tracing programs (also referred to as scripts) can be written using the D programming language (not to be confused with other programming languages named "D"). The language is a subset of C with added functions and variables specific to tracing. D programs most resemble awk programs in structure; they consist of a set of actions rather than a top-down structured program. In a DTrace program, one or more probes (instrumentation points) are enabled; whenever the condition for the probe is met, the action associated with the probe in the DTrace program is executed (the probe "fires").
DTrace was designed and implemented by Bryan Cantrill, Mike Shapiro, and Adam Leventhal. The authors received recognition in 2005 for the innovations in DTrace from InfoWorld and Technology Review.[1][2] DTrace won the top prize in the Wall Street Journal's 2006 Technology Innovation Awards competition.[3]
DTrace implementations require tight integration with the operating system kernel. Although DTrace was initially written for Solaris, its source code is freely available as part of the OpenSolaris project, and work is in progress to port it to FreeBSD (in which there has been initial success[4] as a substitute for the ktrace utility; further work on DTrace integration into FreeBSD is being sponsored by Cisco) and QNX [5]. Apple has included DTrace in Mac OS X 10.5 "Leopard" with a GUI called Instruments;[6] Unlike other platforms that DTrace is supported on, Mac OS X has a flag (P_LNOATTACH) that a program may set that disallows tracing of that process by debugging utilities such as DTrace and gdb. This can affect tracing of other system information, as unrelated probes that should fire while a program with this flag set is running will fail to do so.[7]
Using DTrace
Typical usage of DTrace consists of invoking it from the command line, providing one or more arguments. Here a list of command line with examples arguments.
# New processes with arguments,
dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'
# Files opened by process,
dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
# Syscall count by program,
dtrace -n 'syscall:::entry { @num[execname] = count(); }'
# Syscall count by syscall,
dtrace -n 'syscall:::entry { @num[probefunc] = count(); }'
# Syscall count by process,
dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }'
# Disk size by process,
dtrace -n 'io:::start { printf("%d %s %d",pid,execname,args[0]->b_bcount); }'
# Pages paged in by process,
dtrace -n 'vminfo:::pgpgin { @pg[execname] = sum(arg0); }'
Bioinformatic in Purdue
- 3D-Surfer, a server for rapid protein 3D structure search is released. For a user-uploaded, or selected PDB file, the server searches protein 3D structures with a similar surface shape in the entire PDB database in less than a minute. The conventional RMSD can be also computed to retrieved structures. Characteristic local surfaces, i.e. pockets and protrusions, are identified by our VisGrid algorithm.
- "Combining gene sequence similarity and textual information for gene function annotation" by Luo Si, D. Yu, D. Kihara, & F. Yi, accepted for Information Retrieval.
3D-SURFER is web-based software for protein surface comparison and analysis. The server integrates various repertoire of methods to assist in high throughput screening and visualization of protein surface comparisons. It takes less than a second to perform an exhaustive comparison between a single protein surface to all protein structures in the current PDB (80,394 single chain structures of 34,088 total PDB entries). Conveniently, the web interface also renders animated protein rotations, displays CATH codes [Orengo CA, Structure, 1997], and structure alignment calculations using the Combinatorial Extension (CE) algorithm [Shindyalov IN and Bourne PE, Protein Eng, 1998]