neptune 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/README +4 -0
  2. data/doc/BabelHelper.html +393 -376
  3. data/doc/BadConfigurationException.html +121 -127
  4. data/doc/CommonFunctions.html +237 -265
  5. data/doc/ExodusHelper.html +820 -0
  6. data/doc/ExodusTaskInfo.html +263 -0
  7. data/doc/FileNotFoundException.html +121 -127
  8. data/doc/NeptuneHelper.html +527 -592
  9. data/doc/NeptuneManagerClient.html +696 -0
  10. data/doc/NeptuneManagerException.html +139 -0
  11. data/doc/Object.html +334 -236
  12. data/doc/TaskInfo.html +428 -0
  13. data/doc/created.rid +8 -5
  14. data/doc/images/add.png +0 -0
  15. data/doc/images/delete.png +0 -0
  16. data/doc/images/tag_blue.png +0 -0
  17. data/doc/images/transparent.png +0 -0
  18. data/doc/index.html +74 -142
  19. data/doc/js/darkfish.js +99 -62
  20. data/doc/js/jquery.js +15 -29
  21. data/doc/js/navigation.js +142 -0
  22. data/doc/js/search.js +94 -0
  23. data/doc/js/search_index.js +1 -0
  24. data/doc/js/searcher.js +228 -0
  25. data/doc/table_of_contents.html +226 -0
  26. data/lib/babel.rb +116 -50
  27. data/lib/custom_exceptions.rb +2 -2
  28. data/lib/exodus.rb +311 -0
  29. data/lib/exodus_task_info.rb +36 -0
  30. data/lib/neptune.rb +52 -18
  31. data/lib/{app_controller_client.rb → neptune_manager_client.rb} +54 -38
  32. data/lib/task_info.rb +155 -0
  33. data/test/{unit/test_babel.rb → test_babel.rb} +161 -26
  34. data/test/{unit/test_common_functions.rb → test_common_functions.rb} +1 -1
  35. data/test/test_exodus.rb +687 -0
  36. data/test/{unit/test_neptune.rb → test_neptune.rb} +28 -17
  37. data/test/{unit/test_app_controller_client.rb → test_neptune_manager_client.rb} +15 -16
  38. data/test/test_task_info.rb +32 -0
  39. data/test/{unit/ts_all.rb → ts_all.rb} +3 -1
  40. metadata +30 -34
  41. data/doc/AppControllerClient.html +0 -702
  42. data/doc/AppControllerException.html +0 -145
  43. data/doc/bin/neptune.html +0 -56
  44. data/doc/js/quicksearch.js +0 -114
  45. data/doc/js/thickbox-compressed.js +0 -10
  46. data/doc/lib/app_controller_client_rb.html +0 -60
  47. data/doc/lib/babel_rb.html +0 -68
  48. data/doc/lib/common_functions_rb.html +0 -70
  49. data/doc/lib/custom_exceptions_rb.html +0 -54
  50. data/doc/lib/neptune_rb.html +0 -60
  51. data/test/integration/tc_c.rb +0 -57
  52. data/test/integration/tc_dfsp.rb +0 -37
  53. data/test/integration/tc_dwssa.rb +0 -38
  54. data/test/integration/tc_erlang.rb +0 -183
  55. data/test/integration/tc_mapreduce.rb +0 -282
  56. data/test/integration/tc_mpi.rb +0 -160
  57. data/test/integration/tc_storage.rb +0 -209
  58. data/test/integration/tc_upc.rb +0 -75
  59. data/test/integration/tc_x10.rb +0 -94
  60. data/test/integration/test_helper.rb +0 -135
  61. data/test/integration/ts_neptune.rb +0 -40
@@ -1,70 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
-
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
- <head>
7
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
8
-
9
- <title>File: common_functions.rb [RDoc Documentation]</title>
10
-
11
- <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
12
-
13
- <script src="../js/jquery.js" type="text/javascript"
14
- charset="utf-8"></script>
15
- <script src="../js/thickbox-compressed.js" type="text/javascript"
16
- charset="utf-8"></script>
17
- <script src="../js/quicksearch.js" type="text/javascript"
18
- charset="utf-8"></script>
19
- <script src="../js/darkfish.js" type="text/javascript"
20
- charset="utf-8"></script>
21
- </head>
22
-
23
- <body class="file file-popup">
24
- <div id="metadata">
25
- <dl>
26
- <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">Sun Feb 12 16:18:14 -0800 2012</dd>
28
-
29
-
30
- <dt class="requires">Requires</dt>
31
- <dd class="requires">
32
- <ul>
33
-
34
- <li>digest/sha1</li>
35
-
36
- <li>fileutils</li>
37
-
38
- <li>net/http</li>
39
-
40
- <li>openssl</li>
41
-
42
- <li>socket</li>
43
-
44
- <li>timeout</li>
45
-
46
- <li>yaml</li>
47
-
48
- <li>custom_exceptions</li>
49
-
50
- </ul>
51
- </dd>
52
-
53
-
54
-
55
- </dl>
56
- </div>
57
-
58
- <div id="documentation">
59
-
60
- <div class="description">
61
- <h2>Description</h2>
62
-
63
- <p>Programmer: Chris Bunch (cgb@cs.ucsb.edu)</p>
64
-
65
- </div>
66
-
67
- </div>
68
- </body>
69
- </html>
70
-
@@ -1,54 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
-
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
- <head>
7
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
8
-
9
- <title>File: custom_exceptions.rb [RDoc Documentation]</title>
10
-
11
- <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
12
-
13
- <script src="../js/jquery.js" type="text/javascript"
14
- charset="utf-8"></script>
15
- <script src="../js/thickbox-compressed.js" type="text/javascript"
16
- charset="utf-8"></script>
17
- <script src="../js/quicksearch.js" type="text/javascript"
18
- charset="utf-8"></script>
19
- <script src="../js/darkfish.js" type="text/javascript"
20
- charset="utf-8"></script>
21
- </head>
22
-
23
- <body class="file file-popup">
24
- <div id="metadata">
25
- <dl>
26
- <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">Sun Feb 12 16:18:29 -0800 2012</dd>
28
-
29
-
30
- <dt class="requires">Requires</dt>
31
- <dd class="requires">
32
- <ul>
33
-
34
- </ul>
35
- </dd>
36
-
37
-
38
-
39
- </dl>
40
- </div>
41
-
42
- <div id="documentation">
43
-
44
- <div class="description">
45
- <h2>Description</h2>
46
-
47
- <p>Programmer: Chris Bunch</p>
48
-
49
- </div>
50
-
51
- </div>
52
- </body>
53
- </html>
54
-
@@ -1,60 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
-
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
- <head>
7
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
8
-
9
- <title>File: neptune.rb [RDoc Documentation]</title>
10
-
11
- <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
12
-
13
- <script src="../js/jquery.js" type="text/javascript"
14
- charset="utf-8"></script>
15
- <script src="../js/thickbox-compressed.js" type="text/javascript"
16
- charset="utf-8"></script>
17
- <script src="../js/quicksearch.js" type="text/javascript"
18
- charset="utf-8"></script>
19
- <script src="../js/darkfish.js" type="text/javascript"
20
- charset="utf-8"></script>
21
- </head>
22
-
23
- <body class="file file-popup">
24
- <div id="metadata">
25
- <dl>
26
- <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">Sun Feb 12 16:34:30 -0800 2012</dd>
28
-
29
-
30
- <dt class="requires">Requires</dt>
31
- <dd class="requires">
32
- <ul>
33
-
34
- <li>app_controller_client</li>
35
-
36
- <li>common_functions</li>
37
-
38
- <li>custom_exceptions</li>
39
-
40
- </ul>
41
- </dd>
42
-
43
-
44
-
45
- </dl>
46
- </div>
47
-
48
- <div id="documentation">
49
-
50
- <div class="description">
51
- <h2>Description</h2>
52
-
53
- <p>Programmer: Chris Bunch (cgb@cs.ucsb.edu)</p>
54
-
55
- </div>
56
-
57
- </div>
58
- </body>
59
- </html>
60
-
@@ -1,57 +0,0 @@
1
-
2
- $:.unshift File.join(File.dirname(__FILE__), "..", "..", "lib")
3
- require 'neptune'
4
-
5
- $:.unshift File.join(File.dirname(__FILE__), "..", "test", "integration")
6
- require 'test_helper'
7
-
8
- require 'test/unit'
9
-
10
- class TestC < Test::Unit::TestCase
11
- # unlike the other language interfaces, we don't run c code yet
12
- # just compile it - this may change in the future
13
-
14
- def test_c_compile
15
- ring_code = <<BAZ
16
- #include <stdio.h>
17
-
18
- int main() {
19
- printf("hello world!");
20
- return 0;
21
- }
22
- BAZ
23
-
24
- contents = TestHelper.get_random_alphanumeric(1024)
25
- folder = "hello-world-#{TestHelper.get_random_alphanumeric}"
26
- source = "HelloWorld.c"
27
-
28
- tmp_folder = "/tmp/#{folder}"
29
- FileUtils.mkdir_p(tmp_folder)
30
- compiled = "#{tmp_folder}-compiled"
31
- compiled_code = "#{compiled}/HelloWorld"
32
-
33
- local = "#{tmp_folder}/#{source}"
34
- TestHelper.write_file(local, ring_code)
35
-
36
- output = TestHelper.get_output_location(folder)
37
-
38
- compile_c_code(tmp_folder, source, compiled)
39
-
40
- FileUtils.rm_rf(tmp_folder)
41
- FileUtils.rm_rf(compiled)
42
- end
43
-
44
- def compile_c_code(location, main_file, compiled)
45
- std_out, std_err = TestHelper.compile_code(location, main_file, compiled)
46
-
47
- make = "gcc -o HelloWorld HelloWorld.c -Wall"
48
- msg = "The C Hello World code did not compile as expected. It should have " +
49
- "compiled with the command [#{make}] instead of [#{std_out}]."
50
- assert(std_out.include?(make), msg)
51
-
52
- msg = "The C Hello World code did not compile successfully. It reported " +
53
- "the following error: #{std_err}"
54
- assert_nil(std_err, msg)
55
- end
56
- end
57
-
@@ -1,37 +0,0 @@
1
-
2
- class TestDFSP < Test::Unit::TestCase
3
- def test_dfsp
4
- STORAGE_TYPES.each { |storage|
5
- run_dfsp(storage)
6
- }
7
- end
8
-
9
- def run_dfsp(storage)
10
- expected_output = "sim_output"
11
- contents = TestHelper.get_random_alphanumeric(1024)
12
- folder = "dfsp-#{TestHelper.get_random_alphanumeric}"
13
- output = TestHelper.get_output_location(folder, storage)
14
-
15
- start_dfsp_code(output, storage)
16
- get_dfsp_output(output, expected_output, storage)
17
- end
18
-
19
- def start_dfsp_code(output, storage)
20
- params = { :simulations => 10 }
21
- status = TestHelper.start_job("dfsp", nil, output, storage, params)
22
-
23
- msg = "Your job was not started successfully. The failure message " +
24
- "reported was #{status[:msg]}"
25
- assert_equal(status[:result], :success, msg)
26
- end
27
-
28
- def get_dfsp_output(output, expected, storage)
29
- result = TestHelper.get_job_output(output, storage)
30
-
31
- msg = "The DFSP job you ran did not return the expected result. " +
32
- "We expected to see [#{expected}] but instead saw [#{result}]"
33
- success = result.include?(expected)
34
- assert(success, msg)
35
- end
36
- end
37
-
@@ -1,38 +0,0 @@
1
-
2
- class TestDWSSA < Test::Unit::TestCase
3
- def test_dwssa
4
- STORAGE_TYPES.each { |storage|
5
- run_dwssa(storage)
6
- }
7
- end
8
-
9
- def run_dwssa(storage)
10
- expected_output = ""
11
- contents = TestHelper.get_random_alphanumeric(1024)
12
- folder = "dwssa-#{TestHelper.get_random_alphanumeric}"
13
- output = TestHelper.get_output_location(folder, storage)
14
-
15
- start_dwssa_code(output, storage)
16
- get_dwssa_output(output, expected_output, storage)
17
- end
18
-
19
- def start_dwssa_code(output, storage)
20
- params = { :simulations => 10 }
21
- status = TestHelper.start_job("cewssa", nil, output, storage, params)
22
-
23
- msg = "Your job was not started successfully. The failure message " +
24
- "reported was #{status[:msg]}"
25
- assert_equal(status[:result], :success, msg)
26
- end
27
-
28
- def get_dwssa_output(output, expected, storage)
29
- result = TestHelper.get_job_output(output, storage)
30
-
31
- msg = "The dwSSA job you ran did not return the expected result. " +
32
- "We expected to see [#{expected}] but instead saw [#{result}]"
33
- success = result.include?(expected)
34
- assert(success, msg)
35
- sleep(30) # wait for appscale to free up nodes
36
- end
37
- end
38
-
@@ -1,183 +0,0 @@
1
-
2
- class TestErlang < Test::Unit::TestCase
3
- def test_ring_code
4
- STORAGE_TYPES.each { |storage|
5
- run_ring_code(storage)
6
- }
7
- end
8
-
9
- def test_nonexistent_source_code
10
- location = "baz" + TestHelper.get_random_alphanumeric
11
- main_file = "boo"
12
- compiled = "bazagain"
13
-
14
- msg = "Running a compile job with a non-existent source code location" +
15
- " should have thrown an exception, when in fact it did not."
16
-
17
- assert_raise(SystemExit, msg) {
18
- TestHelper.compile_code(location, main_file, compiled)
19
- }
20
- end
21
-
22
- def test_nonexistent_compiled_code
23
- location = "baz" + TestHelper.get_random_alphanumeric
24
- output = "/bazboo2"
25
- storage = "appdb"
26
-
27
- msg = "Running an Erlang compute job with a non-existent code location" +
28
- " should have thrown an exception, when in fact it did not."
29
-
30
- assert_raise(SystemExit, msg) {
31
- TestHelper.start_job("erlang", location, output, storage)
32
- }
33
- end
34
-
35
- def run_ring_code(storage)
36
- expected_output = "total time for"
37
- ring_code = <<BAZ
38
- -module(ring).
39
- -compile(export_all).
40
-
41
- % spawn N processes
42
- % M times, send message to proc 1
43
- % when proc i recv's a message, send it to i+1
44
-
45
- % distributed version:
46
- % global var for master node
47
- % var with list of nodes
48
- % if master:
49
- % no high-level changes
50
- % else:
51
- % wait for master to give me work
52
- % loop until i receive a kill message
53
- % which breaks this loop and kills this node
54
-
55
- % smaller changes:
56
-
57
- start(Name, Next) ->
58
- %io:format("creating proc named ~p with next proc named ~p~n", [Name, Next]),
59
- register(Name, spawn(fun() -> ring:startMe(Next) end)),
60
- Name.
61
-
62
- startMe(Next) ->
63
- receive
64
- stop ->
65
- void;
66
- {Message, Initiator} ->
67
- NextPid = whereis(Next),
68
- if
69
- is_pid(NextPid) ->
70
- %io:format("sending message to next proc, ~p~n", [Next]),
71
- NextPid ! {Message, Initiator},
72
- startMe(Next);
73
- true ->
74
- %io:format("no next proc to send message to!~n"),
75
- Initiator ! done,
76
- startMe(Next)
77
- end
78
- end.
79
-
80
- generateProcs(Num) ->
81
- if
82
- Num > 0 ->
83
- [start(ring:i_to_a(Num), ring:i_to_a(Num-1)) | ring:generateProcs(Num-1)];
84
- true ->
85
- []
86
- end.
87
-
88
- stopProcs([H | T]) ->
89
- HeadPid = whereis(H),
90
- HeadPid ! stop,
91
- stopProcs(T);
92
- stopProcs([]) ->
93
- void.
94
-
95
- sendMessageToFirst([H | T], Message) ->
96
- HeadPid = whereis(H),
97
- HeadPid ! {Message, self()},
98
- receive
99
- done -> void
100
- end.
101
-
102
- a_to_i(A) ->
103
- list_to_integer(atom_to_list(A)).
104
-
105
- i_to_a(I) ->
106
- list_to_atom(integer_to_list(I)).
107
-
108
- times(Num, Fun) ->
109
- if Num > 0 ->
110
- Fun(),
111
- times(Num-1, Fun);
112
- true ->
113
- void
114
- end.
115
-
116
- main() ->
117
- statistics(wall_clock),
118
- NumProcs = 10,
119
- NumMessages = 1,
120
- Processes = ring:generateProcs(NumProcs),
121
- Message = "hello!",
122
- times(NumMessages, fun() -> sendMessageToFirst(Processes, Message) end),
123
- ring:stopProcs(Processes),
124
- {_, TotalTime} = statistics(wall_clock),
125
- TimeInMicroseconds = TotalTime * 1000,
126
- io:format("total time for N = ~p, M = ~p, is ~p microseconds~n", [NumProcs, NumMessages, TimeInMicroseconds]),
127
- exit('baz').
128
-
129
- BAZ
130
-
131
- contents = TestHelper.get_random_alphanumeric(1024)
132
- folder = "ring-#{TestHelper.get_random_alphanumeric}"
133
- source = "ring.erl"
134
-
135
- tmp_folder = "/tmp/#{folder}"
136
- FileUtils.mkdir_p(tmp_folder)
137
- compiled = "#{tmp_folder}-compiled"
138
- compiled_code = "#{compiled}/ring.beam"
139
-
140
- local = "#{tmp_folder}/#{source}"
141
- TestHelper.write_file(local, ring_code)
142
-
143
- output = TestHelper.get_output_location(folder, storage)
144
-
145
- compile_erlang_code(tmp_folder, source, compiled)
146
- start_erlang_code(compiled_code, output, storage)
147
- get_erlang_output(output, expected_output, storage)
148
-
149
- FileUtils.rm_rf(tmp_folder)
150
- FileUtils.rm_rf(compiled)
151
- end
152
-
153
- def compile_erlang_code(location, main_file, compiled)
154
- std_out, std_err = TestHelper.compile_code(location, main_file, compiled)
155
-
156
- make = "HOME=/root erlc ring.erl"
157
- msg = "The Erlang Ring code did not compile as expected. It should have " +
158
- "compiled with the command [#{make}] instead of [#{std_out}]."
159
- assert(std_out.include?(make), msg)
160
-
161
- msg = "The Erlang Ring code did not compile successfully. It reported " +
162
- "the following error: #{std_err}"
163
- assert_nil(std_err, msg)
164
- end
165
-
166
- def start_erlang_code(code_location, output, storage)
167
- status = TestHelper.start_job("erlang", code_location, output, storage)
168
-
169
- msg = "Your job was not started successfully. The failure message " +
170
- "reported was #{status[:msg]}"
171
- assert_equal(status[:result], :success, msg)
172
- end
173
-
174
- def get_erlang_output(output, expected, storage)
175
- result = TestHelper.get_job_output(output, storage)
176
-
177
- msg = "The Erlang job you ran did not return the expected result. " +
178
- "We expected to see [#{expected}] but instead saw [#{result}]"
179
- out_contains = result.include?(expected)
180
- assert(out_contains, msg)
181
- end
182
- end
183
-