You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(14) |
Aug
(5) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2010 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Roger L. <rog...@gm...> - 2014-06-24 23:06:47
|
I am a researcher at Idaho State working on evolutionary development of bat wings. This is my first post to this list. Does MummerGPU create a .maf file? If not, is there a conversion program? I need an alignment program that will align several large genomes (2 GB) and create a .maf file for input into phyloP (phastcons). Thanks, Roger |
From: Gabriel G. N. <gar...@gm...> - 2012-05-20 02:51:15
|
I want to know if MUMmerGPU works with an ATI video card, more precisely an HD5850 1GB GDDR5. Thanks for your reply Gabriel |
From: Akila G. <aki...@gm...> - 2011-08-23 19:24:27
|
Hello, I have a data set I'm trying to test using mummergpu. Although initially the amount of on-board memory resulted in errors, using the Tesla C2070 card (with ECC off and CUDA 3.2) seemed to fix the problem. However, I am now getting the following error: Loading query block ... ERROR: Realloc failed, requested: -2147483648 This message is output from suffix-tree.cpp where the size of the buffer is doubled. Is this error got to do with the size of my query sequence? Thanks, Akila |
From: Meehan, Joe* <Joe...@fd...> - 2011-05-19 21:49:09
|
This doesn't seem to be a very active list, but I did want to report that I was able to build MummerGPU 2.0 on CUDA 3.2 after making a few small changes to overcome the problems mentioned in other posts: The error on line 468 of mummergpu.cu regarding an "unsigned int *" argument being incompatible with a "size_t *" parameter is due to a change in the parameters of cuMemGetInfo() in CUDA 3.2. See the following PDF for more info: http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUDA_3.2_Readiness_Tech_Brief.pdf NVIDIA says that fixing this with a cast is unsafe. The solution is to change the variables used for memory size from "unsigned int" to "size_t", which has some ripple effects throughout the source code. The multiple definition of GetRef is due to it being defined once for the CPU and once for the GPU. I'm not sure why this is a problem, but I just renamed the GPU version in mummergpu_kernel.cu to getRefDev and changed the function calls in that file to match. Finally, the inability to find -lcudart in my case was due to the Makefile specifying /usr/local/lib instead of /usr/local/lib64. I changed the definition of LIB in the makefile to use lib64 instead of lib, and it worked. I haven't tried to upload any of these changes to SourceForge, but if anyone is interested I'll look into it. Regards, Joe Meehan |
From: ali d. <ali...@gm...> - 2010-12-09 21:52:28
|
Hi, I am trying to build MummerGPU on my machine which is Fermi GX460. this is what I get: rm -f ../obj/release/mummergpu_gold.cpp_o ../obj/release/suffix-tree.cpp_o ../obj/release/PoolMalloc.cpp_o ../obj/release/mummergpu.cu_o g++ -W -Wall -Wimplicit -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wmultichar -Wtrigraphs -Wpointer-arith -Wcast-align -Wreturn-type -Wno-unused-function -I. -I/usr/local/cuda/include -DUNIX -O3 -o ../obj/release/mummergpu_gold.cpp_o -c mummergpu_gold.cpp g++ -W -Wall -Wimplicit -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wmultichar -Wtrigraphs -Wpointer-arith -Wcast-align -Wreturn-type -Wno-unused-function -I. -I/usr/local/cuda/include -DUNIX -O3 -o ../obj/release/suffix-tree.cpp_o -c suffix-tree.cpp rm -f ../lib/libmummergpu.a g++ -W -Wall -Wimplicit -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wmultichar -Wtrigraphs -Wpointer-arith -Wcast-align -Wreturn-type -Wno-unused-function -I. -I/usr/local/cuda/include -DUNIX -O3 -o ../obj/release/PoolMalloc.cpp_o -c PoolMalloc.cpp /usr/local/cuda/bin/nvcc -o ../obj/release/mummergpu.cu_o -c mummergpu.cu -Xcompiler "" -I. -I/usr/local/cuda/include -DUNIX -O3 g++ -W -Wall -Wimplicit -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wmultichar -Wtrigraphs -Wpointer-arith -Wcast-align -Wreturn-type -Wno-unused-function -I. -I/usr/local/cuda/include -DUNIX -O3 -o ../obj/release/mummergpu_main.cpp_o -c mummergpu_main.cpp rm -f ../obj/release/mummergpu_main.cpp_o rm -f ../bin/release/mummergpu mummergpu.cu: In function ‘void buildReferenceTexture(Reference*, char*, size_t, size_t, int, char*, char*, Statistics*)’: mummergpu.cu:390: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’ mummergpu.cu:453: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’ mummergpu.cu: In function ‘void loadResultBuffer(MatchContext*)’: mummergpu.cu:1070: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’ mummergpu.cu: In function ‘void coordsToPrintBuffers(MatchContext*, ReferencePage*, MatchInfo**, Alignment**, unsigned int, unsigned int*, unsigned int*, unsigned int*, unsigned int*, unsigned int*)’: mummergpu.cu:1335: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long unsigned int’ mummergpu.cu: In function ‘void runPrintKernel(MatchContext*, ReferencePage*, MatchInfo*, unsigned int, Alignment*, unsigned int)’: mummergpu.cu:1362: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long unsigned int’ mummergpu.cu: In function ‘void matchQueryBlockToReferencePage(MatchContext*, ReferencePage*, bool)’: mummergpu.cu:2010: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’ mummergpu.cu:2010: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘size_t’ mummergpu.cu:2010: warning: format ‘%d’ expects type ‘int’, but argument 5 has type ‘size_t’ ar qv ../lib/libmummergpu.a ../obj/release/mummergpu_gold.cpp_o ../obj/release/suffix-tree.cpp_o ../obj/release/PoolMalloc.cpp_o ../obj/release/mummergpu.cu_o ar: creating ../lib/libmummergpu.a a - ../obj/release/mummergpu_gold.cpp_o a - ../obj/release/suffix-tree.cpp_o a - ../obj/release/PoolMalloc.cpp_o a - ../obj/release/mummergpu.cu_o g++ -o ../bin/release/mummergpu ../obj/release/mummergpu_main.cpp_o -lmummergpu -L/usr/local/cuda/lib -L../lib -lcudart -lcuda ../lib/libmummergpu.a(mummergpu_gold.cpp_o): In function `getRef(int, char*)': mummergpu_gold.cpp:(.text+0x0): multiple definition of `getRef(int, char*)' ../lib/libmummergpu.a(mummergpu.cu_o):tmpxft_00002453_00000000-1_mummergpu.cudafe1.cpp:(.text+0x1520): first defined here /usr/bin/ld: skipping incompatible /usr/local/cuda/lib/libcudart.so when searching for -lcudart /usr/bin/ld: cannot find -lcudart collect2: ld returned 1 exit status make: *** [../bin/release/mummergpu] Error 1 I have CUDA and I ran codes on GPU before! Thanks for your help, Ali |
From: M C <m_...@ho...> - 2010-12-03 11:41:40
|
Hi, I'm trying to use MummerGPU 2.0 on an Amazon EC2 GPU cluster instance (containing two Tesla M2050 "Fermi" cards), with CUDA 3.2, but the building process fails (whereas it worked fine on an older Tesla C1030 card with CUDA 2.3). The initial error I get is: ### g++ -W -Wall -Wimplicit -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wmultichar -Wtrigraphs -Wpointer-arith -Wcast-align -Wreturn-type -Wno-unused-function -I. -I/usr/local/cuda/include -DUNIX -O1 -o ../obj/release/PoolMalloc.cpp_o -c PoolMalloc.cpp /usr/local/cuda/bin/nvcc -o ../obj/release/mummergpu.cu_o -c mummergpu.cu -Xcompiler "" -I. -I/usr/local/cuda/include -DUNIX -O1 mummergpu.cu(468): error: argument of type "unsigned int *" is incompatible with parameter of type "size_t *" mummergpu.cu(468): error: argument of type "unsigned int *" is incompatible with parameter of type "size_t *" 2 errors detected in the compilation of "/tmp/tmpxft_00003713_00000000-4_mummergpu.cpp1.ii". make: *** [../obj/release/mummergpu.cu_o] Error 2 ### If I try to get past the error by changing line 468 from: CU_SAFE_CALL_NO_SYNC(cuMemGetInfo(free_mem, total_mem)); to make the explicit cast: CU_SAFE_CALL_NO_SYNC(cuMemGetInfo((size_t *)free_mem, (size_t *)total_mem)); then I can past this compilation stage but now the linking fails with the error: ### g++ -W -Wall -Wimplicit -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wmultichar -Wtrigraphs -Wpointer-arith -Wcast-align -Wreturn-type -Wno-unused-function -I. -I/usr/local/cuda/include -DUNIX -O1 -o ../obj/release/mummergpu_main.cpp_o -c mummergpu_main.cpp g++ -o ../bin/release/mummergpu ../obj/release/mummergpu_main.cpp_o -lmummergpu -L/usr/lib64 -L/usr/local/cuda/lib64 -L../lib -lcudart -lcuda ../lib/libmummergpu.a(mummergpu_gold.cpp_o): In function `getRef(int, char*)': mummergpu_gold.cpp:(.text+0x0): multiple definition of `getRef(int, char*)' ../lib/libmummergpu.a(mummergpu.cu_o):tmpxft_00003748_00000000-1_mummergpu.cudafe1.cpp:(.text+0x12fe): first defined here ### Can anyone suggest a fix please? I tried by commenting the function getRef from the file mummergpu_gold.cpp and declaring it as extern (since it seems to already be in libmummergpu.a), which allowed the compilation to complete and give an executable, but this then produces a segmentation fault when run with the package's test data. Help please! m |
From: Pankaj G. <pan...@st...> - 2010-06-01 17:01:46
|
Hello, I've been trying to align human Chr 13 query sequences with the Chr 13 reference using MUMmerGPU 2.0, but I get the following error: Flattening Tree... mummergpu: suffix-tree.cpp:1303: void buildSuffixTreeTexture(PixelOfNode**, PixelOfChildren**, unsigned int*, unsigned int*, unsigned int*, AuxiliaryNodeData**, const char*, int): Assertion `allnodes < MAX_TEXTURE_DIMENSION*MAX_TEXTURE_DIMENSION' failed. Aborted My configuration is: Graphics card: NVIDIA GeForce 9800 GT GPU memory: 1 GB CUDA version: 3.0 OS: Ubuntu 10.04 32-bit Does anyone know how this can be fixed? I'd really appreciate any help. Thanks, Pankaj Email Disclaimer: www.stjude.org/emaildisclaimer |
From: Pankaj G. <pan...@st...> - 2010-05-04 15:14:22
|
Hi, I'm getting run-time error when I run MUMmerGPU-2.0 with a small dataset. Here's the error I get: ******************************************************* $ /opt/mummergpu-2.0/bin/release/mummergpu AE016877.fa DeNovo_BacillusTotal.fasta >allRefsVsAllContigs.txt TWO_LEVEL_NODE_TREE is 0 TWO_LEVEL_CHILD_TREE is 0 QRYTEX is 0 COALESCED_QUERIES is 0 REFTEX is 0 REORDER_REF is 0 NODETEX is 1 CHILDTEX is 1 MERGETEX is 0 REORDER_TREE is 1 RENUMBER_TREE is 1 Loading ref: AE016877.fa... 5411749 bp. [0.24514s] Opening DeNovo_BacillusTotal.fasta... Streaming reference pages against all queries Stream will use 1 pages for 5411749 bases, page size = 5411749 Building reference texture... Creating Suffix Tree... 8920613 nodes [2.65961s] Renumbering tree... [1.05719s] Flattening Tree... node: 4096x2208 children: 4096x2208 [4.75442s] This tree will need 289406976 bytes on the board The refstr requires 5415850 bytes Beginning reference page 0x8ac8260 board free memory: 900464640 total memory: 1073020928 done Loading query block... 69343 queries (53585598 bp), need 472451918 bytes on the GPU (588864598 avail) [1.05587s] done. Allocating device memory for queries... Processing queries C10_contig_1 to C9_contig_6702 allocated 54282166 bytes Matching queries C10_contig_1 - C9_contig_6702 against ref coords 1 - 5415848 Need 52271219 match coords for this result array Allocating result array for 69343 queries (418169752 bytes) ...board free memory: 550240256 total memory: 1073020928 done Memory footprint is: queries: 54282166 ref: 294822826 results: 418169752 match kernel time= 11892.340820 Cuda error in file 'mummergpu.cu' in line 1144 : 6 (the launch timed out and was terminated). Trapped ********************************************** My NVidia/CUDA/MUMmerGPU configuration is: Graphics card: NVIDIA GeForce 9800 GT NVidia Driver version: 195.36.15 CUDA toolkit version: 3.0 MUMmerGPU version: 2.0 GCC version: gcc-4.3 OS: Ubuntu 9.10 32-bit ********************************************** Previously MUMmerGPU was working with the above dataset and NVidia/CUDA/MUMmerGPU configuration, but recently it's been throwing the above error. I would really appreciate any help in this regard. Thanks for your help in advance! Pankaj Email Disclaimer: www.stjude.org/emaildisclaimer |
From: <as...@sa...> - 2010-04-10 10:47:58
|
Hi everyone, I'm trying to compile mummergpu2 but i'm having problems with it. My system: Fedora 10 x86_64 GeForce 8800 GTS gcc version 4.3.2 Cuda compilation tools, release 2.3, V0.2.1221 This is what I'm obtaining: rm -f ../obj/release/mummergpu_gold.cpp_o ../obj/release/suffix-tree.cpp_o ../obj/release/PoolMalloc.cpp_o ../obj/release/mummergpu.cu_o rm -f ../lib/libmummergpu.a rm -f ../obj/release/mummergpu_main.cpp_o rm -f ../bin/release/mummergpu g++ -W -Wall -Wimplicit -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wmultichar -Wtrigraphs -Wpointer-arith -Wcast-align -Wreturn-type -Wno-unused-function -I. -I/usr/local/cuda/include -DUNIX -O3 -o ../obj/release/mummergpu_gold.cpp_o -c mummergpu_gold.cpp g++ -W -Wall -Wimplicit -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wmultichar -Wtrigraphs -Wpointer-arith -Wcast-align -Wreturn-type -Wno-unused-function -I. -I/usr/local/cuda/include -DUNIX -O3 -o ../obj/release/suffix-tree.cpp_o -c suffix-tree.cpp suffix-tree.cpp: In function const char* substr(const char*, int, int): suffix-tree.cpp:50: error: strncpy was not declared in this scope suffix-tree.cpp: In constructor EventTime_t::EventTime_t(): suffix-tree.cpp:84: error: memset was not declared in this scope suffix-tree.cpp: In constructor SuffixTree::SuffixTree(const char*): suffix-tree.cpp:333: error: strlen was not declared in this scope suffix-tree.cpp: In function void getReferenceString(const char*, char**, size_t*): suffix-tree.cpp:1670: error: strdup was not declared in this scope suffix-tree.cpp:1671: error: strlen was not declared in this scope suffix-tree.cpp: In function void getQueriesTexture(int, char**, size_t*, int**, char***, int**, unsigned int*, unsigned int*, unsigned int, int, bool): suffix-tree.cpp:1787: error: strdup was not declared in this scope suffix-tree.cpp:1890: error: strdup was not declared in this scope suffix-tree.cpp: In function int addToBuffer(char*): suffix-tree.cpp:2108: error: strlen was not declared in this scope suffix-tree.cpp:2113: error: strncpy was not declared in this scope suffix-tree.cpp:2122: error: strncpy was not declared in this scope suffix-tree.cpp: In function void printAlignmentsOld(ReferencePage*, char*, int, int, int, int, int, bool, bool): suffix-tree.cpp:2398: error: strlen was not declared in this scope suffix-tree.cpp: In function void printAlignments(ReferencePage*, Alignment*, char*, int, TextureAddress, int, int, int, bool, bool): suffix-tree.cpp:2435: error: strlen was not declared in this scope make: *** [../obj/release/suffix-tree.cpp_o] Error 1 So, I don't program in c++ but I checked the code and according to the error the problem begins here: char substrbuffer[1024]; const char * substr(const char * str, int start, int len) str, start and len are not getting values for some reason. Hence, the other variables that take their values using the previous ones, are also empy. Other things is that there's a new CUDA 3.0 which I also tried and give me the same problem. Any ideas? -- The Wellcome Trust Sanger Institute is operated by Genome Research Limited, a charity registered in England with number 1021457 and a company registered in England with number 2742969, whose registered office is 215 Euston Road, London, NW1 2BE. |
From: M C <m_...@ho...> - 2009-12-27 10:01:17
|
Hi all, Is MUMmerGPU 2.0 available for download yet? I notice from the online article "Optimizing data intensive GPGPU computations for DNA sequence alignment" that it should be available for download from the sourceforge site, but as far as I can tell v1.1 is the latest that's available. If v2.0 is still not ready for release, is a patched version of v1.1 that supports CUDA 2+ available? I note form a post on this forum dating back to 15th July 2008 that: "MUMmerGPU requires CUDA 1.1 since some of the APIs have changed between the version. Once CUDA 2.0 is fully released (not beta), we'll update the package for the new release." Was the package ever updated? The version that's currently updated fails to build with CUDA 2.3. Thx for any help, m _________________________________________________________________ Have more than one Hotmail account? Link them together to easily access both http://clk.atdmt.com/UKM/go/186394591/direct/01/ |
From: Jaakan S. <jaa...@gm...> - 2008-12-23 19:00:40
|
I did read through the thread "Re: [MUMmerGPU-devel] MUMmer GPU build error" that did help me. I'm also at the point were CPU using the -C switch works and Segmentation faults without it. I have access to NV GPU+RHEL5 x64 server, if you need me to send you the gdb/debuged output I might have done a few more changes to get this to run on RHEL5 x64, I can tar.gz my current source for this with my changes if anyone needs to look at all of the changes. I hope I can help. --Jaakan Here are some changes I made to fix the following warnings on 64bit linux and don't forget to add " #include <stdint.h> " "warning: conversion from pointer to smaller integer" this " * timer = (unsigned int) ptr " should be " * timer = (uintptr_t) ptr" "warning: cast to pointer from integer of different size" basicly "unsigned int ptr" needs to be "uintptr_t ptr" mummergpu.cu ... #include <stdint.h> // includes, kernels #include "common.cu" #include "mummergpu.h" #include "mummergpu_kernel.cu" #define ulong4 uint32_t .... // Timer management struct Timer_t { struct timeval start_m; struct timeval end_m; }; void createTimer(unsigned int * timer) { unsigned int * ptr = (unsigned int *) malloc(sizeof(struct Timer_t)); memset(ptr, 0, sizeof(struct Timer_t)); // * timer = (unsigned int) ptr; * timer = (uintptr_t) ptr; } // void startTimer(unsigned int ptr) void startTimer(uintptr_t ptr) { gettimeofday(&(((struct Timer_t *)ptr)->start_m), NULL); } // void stopTimer(unsigned int ptr) void stopTimer(uintptr_t ptr) { gettimeofday(&(((struct Timer_t *)ptr)->end_m), NULL); } //float getTimerValue(unsigned int ptr) float getTimerValue(uintptr_t ptr) { Timer_t * timer = (Timer_t*) ptr; if (timer == NULL) { fprintf(stderr, "Uninitialized timer!!!\n"); return 0.0; } if (timer->end_m.tv_sec == 0) { stopTimer(ptr); } return (float) (1000.0 * (timer->end_m.tv_sec - timer->start_m.tv_sec) + (0.001 * (timer->end_m.tv_usec - timer->start_m.tv_usec))); } //void deleteTimer(unsigned int ptr) void deleteTimer(uintptr_t ptr) { free((Timer_t *)ptr); } .... I changed " ulong4 data " to " unsigned int data " in the following. common.cu .... #ifndef COMMON_CU__ #define COMMON_CU__ 1 // Children are labeled as ACGT$ const int basecount = 5; // Note: max pixel size is 16 bytes const unsigned char DNA_A = 'A'; const unsigned char DNA_C = 'B'; const unsigned char DNA_G = 'C'; const unsigned char DNA_T = 'D'; const unsigned char DNA_S = 'E'; // 4 bytes struct TextureAddress { union { unsigned int data; struct { unsigned short x; unsigned short y; }; }; }; // Store the start, end coordinate of node, and $link in 1 pixel struct PixelOfNode { union { // ulong4 data; unsigned int data; struct { int start; int end; TextureAddress childD; TextureAddress suffix; }; }; }; // Store the ACGT links in 1 pixel struct PixelOfChildren { union { // ulong4 data; unsigned int data; TextureAddress children[4]; }; }; #define FORWARD 0x0000 #define REVERSE 0x8000 #define FRMASK 0x8000 #define FRUMASK 0x7FFF #endif |
From: Mohanram G. <mg...@co...> - 2008-07-16 19:35:41
|
Hi, I'm trying to compile MummerGPU for my machine, and I have not been able to get around the 255 error. My system config is as follows: RHEL 5.1 - server config GCC 4.1.2 NVidia Geforce 8800GTS (512 Mb) NVidia driver ver 169.09 CUDA SDK + Toolkit ver 1.1 I would appreciate any help on this, since I am trying to work with SOLEXA data, and wanted to see if I could use MummerGPU in my pipeline. Thanks in advance! best, Mohan The error message is as follows: ===== /usr/local/cuda/bin/nvcc -o obj/release/mummergpu.cu_o -c mummergpu.cu -Xcompiler "-m32" -Xcompiler "" -I. -I/usr/local/cuda/include -DUNIX -O3 "mummergpu.cu", line 96: warning: conversion from pointer to smaller integer *timer = (unsigned int) ptr; ^ "/usr/local/cuda/bin/../include/texture_fetch_functions.h", line 616: error: no suitable user-defined conversion from "uint4" to "ulong4" exists return T(v); ^ detected during instantiation of "T tex2D(texture<T, 2, readMode>, float, float) [with T=ulong4, readMode=cudaReadModeElementType]" at line 122 of "./mummergpu_kernel.cu" 1 error detected in the compilation of "/tmp/tmpxft_00007756_00000000-2.ii". make: *** [obj/release/mummergpu.cu_o] Error 255 === |
From: Michael S. <ms...@um...> - 2007-08-01 21:16:03
|
If you have any general questions regarding MUMmerGPU, please send email to this mailing list. Thank you, Michael Schatz http://www.cbcb.umd.edu/~mschatz |