aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 846ec79da173a51671996294b090a8d263f8ddc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
CVS info   : $Header$

Cactus Code Thorn Formaline
Thorn Author(s)     : Erik Schnett <schnetter@aei.mgp.de>
Thorn Maintainer(s) : Erik Schnett <schnetter@aei.mgp.de>
--------------------------------------------------------------------------

Purpose of the thorn:

Send meta information about a run to a server, so that it is kept
there forever.  The information sent is e.g. the parameter file, date,
time, machine, and user id of the run, location of the output data,
number of iterations, an efficiency summary, etc.



TODO:

put unique job IDs into all output files

BSD tar: read files from file: -I filename
tar: don't use -z; use tar and gzip
AIX: tar is GNU tar, but uses -L instead of -T

IOUtil should not depend on anything
(MoL should not depend on NaNChecker)

use a configuration script to amend all thorns' make.code.deps files
to create the tarballs when the thorns are compiled

use perl instead of C for makeblob and makemetablob

announce: maybe use <array> for parameter arrays
          maybe use <bool> for booleans
          maybe use <dateTime.iso8601>20100302T00:00:00</dateTime.iso8601>
                for dates and times

put the output files into the build directory instead of the scratch
directory

output grid variables
register as output method
implement reductions
implement missing data types
output only if value has changed

put stuff into namespace
        (move from C to C++?)
rename "file", "storage" do something more unique



Here is a suggestion for handling sockets in perl.
This is from "http://www.infocopter.com/perl/socket-server.htm".

#!/usr/bin/perl -w
use strict;
################################################
# Socket Client
# (c) retoh :)
################################################
use Socket;

my $host = 'localhost';
my $port = 7890;

my $proto = getprotobyname('tcp');
socket(my $FS, PF_INET, SOCK_STREAM, $proto);
my $sin = sockaddr_in($port, inet_aton($host));
connect($FS, $sin) || exit -1;

my $old_fh = select($FS); $| = 1; select($old_fh);

print $FS "Hello at ", scalar localtime(), "\n\n";

while(<$FS>) {
        print;
}

close $FS;