Tiling Script
This script uses multiple display setups to arrange OpenGL programs according to user specifications. The user specifies an input file, which details the display and application setups, and the script will tile the programs accordingly. The script can use Chromium if the user wishes to tile a single application over multiple (or one) display.
Files:
tiles.confREADME
Input Examples: boba_windows.in, boba_all_local_test.in, boba_full_tilesort_test.in, boba_mixed_tile_test.in
Input File Format
Refer to example below.The array 'a' holds each monitor's position and size. The position is normally 0, 0. Size is resolution (width, height).
'dir1' is directory to application.
'app1' is application, including absolute paths, along with any input
'crsite' contains all the data for how the applications should be rendered
In crsite:
"render_nodes" is an array that holds an array for render machine.
Each machine has this format:
['machine_name', a, [tile location and size]],
"client_nodes" is an array that holds an array for application(client)
machines.
Each machine has this format:
['client_name', [tiles_to_span], [render_nodes], app_dir, app, window_#],
*tiles_to_span: [#_horizontal_tiles, #_vertical_tiles]
*render_nodes: Render nodes are numbered 1 through (total_nodes) from
left to right then top to bottom. List nodes in increasing order.
e.g., [1, 2, 3, 4]
*window_# specifies which window of a mutli-window application to display.
Use 0 for single window applications.
"local_run" is an array that holds an array for applications that
will be run directly on the render machine.
Each has this format:
['render_machine_name', application],
"chromium" is a string that specifies the path to chromium
/---------------------------Example Input-------------------------/
a = [0, 0, 1280, 1024]
dir1 = '/user/application_dir'
app1 = '/user/application_dir/app (input parameters)'
crsite = {
"render_nodes" : [['render01', a, [0, 1024, 1280, 1024]],
['render02', a, [1280, 1024, 1280, 1024]],
['render03', a, [0, 0, 1280, 1024]],
['render04', a, [1280, 0, 1280, 1024]],
],
"client_nodes" : [['head01', [2, 2], [1, 2, 3, 4], dir1, app1, 1],
],
"local_run" : [[7, app1],
"chromium" : '/user/cr-1.7'
}
/--------------------------------------------------------------------/
Running
./tiles.conf <input_file>
Notes
If you want an application to be fullscreen when running locally on a render machine, be sure the window it produces is in position 0,0 and its size is the same as the monitors resolution.When using tiling, each row must contain the same number of render machines. The order of "render_nodes" is left to right then top to bottom, numbered respectively from 1 to number_of_nodes.
Example:
___________
| 1 | 2 | 3 |
|---|---|---|
| 4 | 5 | 6 |
|---|---|---|
| 7 | 8 | 9 |
-----------
Use x2x to get keyboard/mouse access on the nodes. If you run
more than one application on a single node, then x2x can only send
keys to one of those programs, so keep that in mind.






