st"> nd"> rd"> cm"> sec"> unit"> degree"> vec"> vec1d"> vec2d"> vec3d"> vec4d"> mat"> mat1d"> mat2d"> mat3d"> mat4d"> igl"> igl1d"> igl2d"> igl3d"> igl4d"> quatd"> rot2d"> rot3d"> 3DE4"> 3DE4/r4b1"> 3DE4/r4b2"> 3DE4/r4b3"> 3DE4/r4b4"> tde4mhpd"> 3DE4/MHP"> MHP"> VL"> Main Window"> Overview Controls"> Manual Tracking Controls"> Distortion Grid Controls"> Autotracking Controls"> Lineup Controls"> 3D Orientation Controls"> F1"> F2"> F3"> F4"> F5"> F6"> Windows"> Calc"> Python"> Adjustment"> Object Browser"> Deviation Browser"> Timeline Editor"> Curve Editor"> Attribute Editor"> Parameter Adjustment Window"> Advanced Options"> Network Calc"> Image Controls Window"> Python Console Window"> Online Help Window"> Preferences"> Network Calculation"> Network Calculation Mode"> Enabled - Static Master Node"> Enabled - Dynamic Self Organizing Network"> Off"> Master Node Hostname"> Allow For Network Calculation"> Frame Range Calculation"> Run Python Script..."> Rescan Python Directories"> Open Python Console..."> Project"> Camera"> Camera"> Weight"> Live Action Footage"> First Frame is Frame"> Lens"> Lens..."> Focal Length"> Use From Lens"> Static"> Dynamic"> Focus Distance"> Rolling Shutter Compensation"> Synchronization"> Stereoscopic"> Orientation"> Lefthand Camera"> Righthand Camera"> Timeshift"> Point Group"> Point"> Point"> Position XYZ"> 2D Tracking"> 3D Calculation"> Survey Type"> Survey Free"> Approximately Surveyed"> Exactly Surveyed"> Lineup Only Surveyed"> Approx. Survey Radius"> 3D Model"> Lens"> Lens Distortion"> Dynamic Lens Distortion"> Scene"> Cameras"> Point Groups"> Constraints"> Lenses"> blob"> core"> gui script"> gui scripts"> modifier script"> modifier scripts"> parent"> responder"> computational"> news"> updater_udp"> scanner"> deputy"> self"> float"> complex"> len"> __repr__"> __str__"> +"> −"> *"> /"> +="> −="> *="> /="> dotsq"> dot"> tensq"> ten"> wdg"> norm1"> norm2"> norminf"> unit"> para"> ortho"> dual"> invert"> conjugate"> quat"> axis"> angle"> angles"> trans"> trace"> sub"> adj"> det"> invert"> 3DE4"> ||"> a"> b"> p"> u"> pl"> ul"> ml"> pr"> ur"> mr"> p' r"> cl,x"> cl,y"> cl,z"> cr,x"> cr,y"> cr,z"> c' r,z"> ccenter"> ex"> ey"> ez"> ddepth"> dvert"> dioc"> pconv"> 1"> R3"> ⊥&u;"> ⊥&u_l;"> ⊥&u_r;"> ⊥stereo"> ⊥center"> Attribute Editor"> Cameras"> Stereoscopic"> Rotation Policy"> rotation policy"> rotation policies"> Allow y-Rotation Only"> Allow Rotation Around all Axes"> parallaxe"> interocular"> Interocular"> Curve Editor"> vertical shift"> Vertical Shift"> depth shift"> Calc"> Zoom Curve"> Calc Zoom Curve From Scratch"> Finetune Zoom Curve From Scratch"> w"> wa"> wb"> wr"> h"> ha"> hb"> hr"> gles::math"> imgop"> imgop_ldpk"> imgop_pthread"> ldpk"> transwarp"> minifl"> img"> img_memptr"> int"> true"> false"> float"> n"> selector"> segment"> collect/apply"> ]>
Version | &tde4; Rel. | Released | Changes |
1.5.0 | Bugfixes in &tde4;'s core | ||
1.4.0 | Bugfixes in &tde4;'s core | ||
1.3.0 | Lens models which depend on focal length and focus distance; point constraints | ||
1.2.0 | Bugfix: Sync + Lock Channels | ||
1.1.0 | &tde4;R4b2 | 2014-05-09 | Bugfix: &tde4mhpd; more robust when host resolution is blocking. Bugfixes in &tde4;'s core, most of them related to stereo and sync projects. |
1.0.69 | &tde4;R4b1 | 2014-04-02 | First release |
Although this is meant to be the quick guide, we will have to define a few things.
When the user starts &tde4; with network calculations enabled, a &tde4mhpd; node will
start as well. This node is controlled via &tde4;'s GUI, and therefore we call it a
An MHP-network is a distributed system with a central node, which we call the
In the following we distinguish between static network and automatic network. Although it may sound like completely different modes of operation, this is not the case. The only difference is the way the nodes find each other in order to form the &mhp;-network. Once the network is up and running, there is no such thing like a static or automatic network.
Let us have a look at this setup in detail. Assume we have picked a machine name
uwe@hellboy /home/uwe> cd /server/software/linux64/tde4mhpd/ uwe@hellboy software/linux64/tde4mhpd>
uwe@hellboy software/linux64/tde4mhpd> ./tde4mhpd +---------------------------------------------------------------------------+ | tde4mhp config | +-------------------+----------------------------------------+--------------+ | name | value | def'd by | +-------------------+----------------------------------------+--------------+ | version | 1.0.0 | | | process_mode | daemon | default | | launched_by | | default | | owned_by | uwe | default | +-------------------+----------------------------------------+--------------+ | host | 100.1.1.34 | system | | port | 57431 | default | | chief_host | 100.1.1.34 | default | | chief_port | 57431 | default | | network_mode | explicit | default | | subnet_a | 100.1.0.0/16 | default | | fileserver_base | | undefined | | known_hosts | | undefined | | flcd_host | | undefined | | flcd_port | 57423 | default | +-------------------+----------------------------------------+--------------+ | num_cores | 8 | system | | num_threads_comm | 8 | default | | num_threads_priv | 0 | default | +-------------------+----------------------------------------+--------------+ | install_dir | /guul/server/software/linux64/tde4mhpd | installation | | plugin_dir | <install_dir> / | undefined | | tmp_dir | /tmp/ | default | | home_dir | /home/uwe/.3dequalizer/ | default | | config_file | | default | | logfile | /tmp/tde4mhp.u753.log | default | | loglevel | LOG_NOTICE | default | +-------------------+----------------------------------------+--------------+ | executable path | ./tde4mhpd | installation | | full logfile path | /tmp/tde4mhp.u753.log | | +-------------------+----------------------------------------+--------------+ uwe@hellboy software/linux64/tde4mhpd>
uwe@hellboy software/linux64/tde4mhpd> ps -ef | grep tde4mhpd uwe 10160 1 0 15:16 ? 00:00:00 ./tde4mhpd uwe 10170 10160 0 15:16 ? 00:00:00 ./tde4mhpd uwe 10174 10090 0 15:20 pts/1 00:00:00 grep tde4mhpd
uwe@hellboy software/linux64/tde4mhpd> ./tde4mhpd There already seems to be a node running on this host with process id 10160. Please remove this process first by 'kill 10160' and then try again.
uwe@smaug /home/uwe> cd /server/software/linux64/tde4mhpd/ uwe@smaug software/linux64/tde4mhpd> ./tde4mhpd -chief_host hellboy
... | chief_host | hellboy | cmdline | | chief_port | 57431 | default | ... | num_cores | 8 | system | | num_threads_comm | 8 | default | | num_threads_priv | 0 | default | ...
uwe@smaug> ./tde4mhpd -network_mode automatic -flcd_host doom -flcd_port 57423
The case of standalone nodes is more interesting for the administrator, so we shall discuss this case in the following. We do this by means of examples, so let us assume our current directory contains the executable of &tde4mhpd;. The following command will start &tde4mhp; as a daemon. It will form a monadic network, consisting only of itself (unless other nodes connect to it). This is the common way to start the chief node in a static setup.
uwe@hellboy> ./tde4mhpd
uwe@smaug> ./tde4mhpd -process_mode foreground
uwe@smaug> ./tde4mhpd -chief_host hellboy -chief_port 57431
uwe@smaug> ./tde4mhpd -network_mode automatic -flcd_host doom -flcd_port 57423
uwe@smaug> ./tde4mhpd -network_mode automatic -subnet_a 192.168.32.0/20
uwe@smaug> ./tde4mhpd -config_file /server/etc/tde4mhp/tde4mhp.conf -num_threads_comm 8 -num_threads_priv 0
You can also terminate &tde4mhp; from the command line, but in this case
the chief role (if your node is chief) is not transferred automatically to another node.
Let us assume, your node is not chief. Then a node running in process mode
Environment variable | Command line option | Configuration file entry |
TDE4MHP_NETWORK_MODE | -network_mode | network_mode |
<option> <value> <option> <value> ... <option> <value>
Environment variables | Command line options | Configuration file entry | Possible values |
TDE4MHP_HOST | -host | host | ip address e.g. 192.168.1.32 |
TDE4MHP_PORT | -port | port | port number, default is 57431 |
TDE4MHP_CHIEF_HOST | -chief_host | chief_host | ip address |
TDE4MHP_CHIEF_PORT | -chief_port | chief_port | port number |
TDE4MHP_PROCESS_MODE | -process_mode | process_mode | "foreground", "background", "daemon" |
TDE4MHP_NETWORK_MODE | -network_mode | network_mode | "automatic", "explicit" |
TDE4MHP_SUBNET_A | -subnet_a | subnet_a | net address e.g. 192.168.1.0/24 |
TDE4MHP_SUBNET_B | -subnet_b | subnet_b | net address e.g. 192.168.1.0/24 |
TDE4MHP_SUBNET_C | -subnet_c | subnet_c | net address e.g. 192.168.1.0/24 |
TDE4MHP_PLUGIN_DIR | -plugin_dir | plugin_dir | path/to/plugin/dir/ |
TDE4MHP_TMP_DIR | -tmp_dir | tmp_dir | /tmp, /var/tmp |
TDE4MHP_LOGFILE | -logfile | logfile | /some/local/file |
TDE4MHP_LOGLEVEL | -loglevel | loglevel | LOG_DEBUG, LOG_INFO, LOG_NOTICE, LOG_WARNING, LOG_ERR, LOG_CRIT, LOG_ALERT, LOG_EMERG |
TDE4MHP_NUM_THREADS_COMM | -num_threads_comm | num_threads_comm | integer number |
TDE4MHP_NUM_THREADS_PRIV | -num_threads_priv | num_threads_priv | integer number |
TDE4MHP_LAUNCHED_BY | -launched_by | launched_by | string |
TDE4MHP_FILESERVER_BASE | -fileserver_base | fileserver_base | /mount/point/of/fileserver |
TDE4MHP_HOME_DIR | -home_dir | home_dir | directory, like $HOME/.3dequalizer |
TDE4MHP_KNOWN_HOSTS | -known_hosts | known_hosts | comma-separated list of hostnames |
TDE4MHP_FLCD_HOST | -flcd_host | flcd_host | hostname |
TDE4MHP_FLCD_PORT | -flcd_port | flcd_port | port number, default is 57423 |
TDE4MHP_CONFIG_FILE | -config_file | - n.a. - | path |
TDE4MHP_INSTALL_DIR | -install_dir | - n.a. - | base for relative paths |
- n.a. - | -help / help | - n.a. - | - n.a. - |
LD_PLUGINS_3DE4 | - n.a. - | - n.a. - | Additional directory for lens distortion plugins |
&tde4mhpd; reads the environment variable
/sbin/route
generates the following output:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.211.55.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 0 0 0 eth0 loopback * 255.0.0.0 U 0 0 0 lo default 10.211.55.1 0.0.0.0 UG 0 0 0 eth0
10.211.55.1 dev eth0 src 10.211.55.7 cache mtu 1500 advmss 1460 hoplimit 64
Column | Content |
host:port | In this column you see the ip-address and the port number of each node. It is advisable to use the same port number for all hosts in the network. In &tde4mhp; hosts are not identified by their hostname, instead we use the ip-address of the interface pointing to the standard gateway (the default route). This makes the network resistent against spontaneous renaming by the DHCP server or the like. |
hostname | This column shows the human-readable hostname generated by the host ( |
proc | The column "proc" displays how the node was started, as foreground process, as background process or as a daemon. Running a node in process mode "foreground" is helpful for learning and debugging puposes. For daily use, console output for debugging is no longer required, and nodes should be run as daemons. |
msg | This field contains the last status report from network connection between chief node and all other nodes.
Whenever |
launched_as | This column shows if this is a controlled node or a standalone node. |
role | This column tells you if the node is |
threads | This column displays the number of threads dedicated to the community and the number of private threads. For standalone nodes it makes sense to make all resources available to the community. Since &tde4; is not running on these hosts, private threads are not needed. |
uptime | This column displays the time the node has been running. |
version | In the introduction we have already mentioned that only nodes having the same major version and subversion number can collaborate, so it's important to display the version here. |
perf | After each parameter adjustment, the client collects the times for processing the jobs are averaged and mapped into a relative performance values. These values are sent to the chief and averaged over the previous ten projects. When the performance values are displayed, the fastest host is labelled with "100%" and all other hosts accordingly. |
op | The operations column contains buttons for restarting or terminating a node. Loyal nodes have a button which turns the node into the chief. In mixed networks with controlled and standalone nodes, it makes sense to associate the chief role to a standalone node, in order to release the controlled node from network traffic. |
Button | Effect |
RESTART | Restart the node. The node will keep its settings. If it has been the chief before restart,
it will be chief after restart as well, so this opreration should keep the network consistent.
Technically, this is done by sending the signal |
TERM | This will terminate the node regularly. When the node has been chief before termination, the chief role is moved to another node and all other nodes are relinked to the new chief. Computational child processes are not terminated, so ongoing computations will not be affected. These processes can appear as "undefined" in the process list, but should vanish when computations are done. |
RELINK... | Your browser will ask you for an ip address and a port number. The node is then relinked from its current chief to the new chief given by the host data you have entered. If the node has been chief before the operation it will take all loyals over to the new chief, so this operation can be used to merge two smaller networks into a bigger one. |
UNLINK... | The node is unlinked from its current chief and forms a network on its own (a "monadic" network). If the node is chief, the network will not be modified. This operation makes sense if you want to exclude the node from network computations without terminating it. |
SCAN NW... | When the node is started in automatic network mode, a subprocess is started, which scans the local area network for other nodes. When this process is over (successfully or not) the scanner process terminates. By this button you can initiate the scanner process manually. |
COLLECT... | When the chief is terminated unexpectedly, the network is left in an inconsistent state; the remaining nodes are checked in at a chief node that ceased to exist, yet they are not smart enough to re-organize themselves. Relinking each single node by hand would be a lot of work. In order to speed this up, you go to the properties page of the chief to be designated and press this button. The node will try to collect nodes in the inconsistent network and form a new, well-defined network. So, this is kind of a "repair" button, but it should only be pressed, if there is need to repair something. |
Process name | Function |
parent | The &parent; process waits for incoming tcp-requests. When a tcp-connection is established, it creates a thread or a process. |
responder | A &responder; process is created when an xml-, html- or any other http-related file is requested. Usually, processes of this type only exist for a less than a second. |
computational | Each user doing computations on the node causes the creation of a &computational; process, i.e. there can be more than one &computational; at a time. Processes of this type create threads and use a lot of cpu-time. When no calculations are done in the &mhp;-network, there should not be any computational process. When the &parent; process is killed, &computational; processes will keep working, until their jobs are done. |
news | The chief host spawns a &news; process or each instance of &tde4; connecting to the &mhp;-network. The &news; process sends information about the current status of the network to &tde4;, which are then displayed in &tde4;'s GUI. |
updater_udp | This process is spawned by the chief. It creates an udp-socket and waits for messages from all nodes. The &updater_udp; process will run as long as the chief node is running (and as long as the node is chief). There can be only one &updater_udp; process per chief. When (temporarily) there are more processes of this type the additional ones should terminate after a few seconds. |
scanner | In network-mode |
prefork | During startup, i.e. before accepting network connections,
the process is called |
undefined | When a node is restarted, its subprocesses (e.g. computationals) keep on running. These subprocesses
are unknown to the new node process and appear as |
Name | Purpose |
often available on &osx;. non-interactive download of files (http,https,ftp). | |
does a lot, useful for examining network interfaces | |
report interprocess communication facilities status. The shared memory acquired by &tde4mhpd; will appear here. | |
send a signal to a process. If you need to kill a &tde4mhpd; process,
please keep in mind that it's better to try | |
kill (more precise: send signal to) processes by name | |
list cpu information | |
list open files. This one produces a lot of output. Some options are particularly interesting,
like e.g. | |
the Swiss knife in networking | |
a port scanner. Should be available as a package in most &linux; distributions. | |
check if host is up and reachable | |
report process status | |
display processes | |
often available on &linux;. non-interactive download of files (http,https,ftp). |