WARNING: If you want GPU to accept incoming connections, you should forward port 6346 on your router and make sure your firewall does not filter port 6346. Doing so, other GPUs will be able to connect to your machine, and more complex networks will arise, hopefully. If you need help, write us an email.


Advanced Tips and Tricks

How can I build a cluster out of Windows 2000/XP machines?

Have fun.

Run two GPUs on the same computer

Oops: this tips works only with versions between 0.800 and 0.811. GPU destroys loop connections even if they are on a different port. We will fix it in future versions.

It is possible to run two or more GPUs on the same computer; however, you have to make sure that all GPUs listen for incoming connections on a different port. You can set it, if you switch to the configuration tab. Below the 'Connection tab', you will find 'Listen Port'. Change this port on one of the two GPUs to 1000, for example. From this GPU, you can then add a connection using the connect button and with 127.0.0.1 as IP number.

How to force autoupdate

If something went wrong in the autoupdate procedure, you can attempt this again by resetting the version number in gpu.ini. Open gpu.ini with Notepad and edit the 'Autoupdate' line.

Advanced logfile analysis with Cygwin

Cygwin is a free Unix shell for Windows machines. All advanced GPUsers should have a copy on their toaster :-). So, after you installed Cygwin (remember to add the OpenSSH package, this is used to connect to other Unix/Linux machines), you can copy the log.txt file generated by GPU in a subdirectory visible by Cygwin, typically C:\Cygwin\home\username. Now, let's do things step by step.

Computer analysis with Network Mapper and board tools

Even without Visualroute, you can learn something on people on the network: if you are chatting with someone, you can see his/her time. See how many hours of difference there are compared to your time. Say this number is x. If you are both at the equator, or if an approximation is enough, you can compute a distance; switch to the GPU engine (the chip button), and type the following local command: x,24,dvd,40000,mul. Substitute x with the time difference. Result is the number of kilometers between you and the chatter. Call this number distance.

Now open the Network Mapper: with a click on 'Network status' learn the IP numbers of people belonging to the network. Then with Start-Execute, and by typing cmd, open a DOS-prompt. With nslookup IP-number, you can learn the DNS name of the computer. The last string after the dot is the country code, for example br for Brasil or ch for Switzerland.

In the same DOS-prompt, type ping IP-number to test the connection (packets might go lost sometimes) and to get a distance in milliseconds from you and the analyzed computer. Call this number y.

With tracert IP-number, you can learn how many computers there are in between and reconstruct where packets go through. Call the number of computers in between z.

See if the formula y = (distance*1000) / 3E8 + z * 0.025 holds. With GPU, you can compute locally distance,1000,mul,3E8,dvd,z,0.025,mul,add and see if the number matches somehow y. The formula is computed with following assumptions: each computer in the chain needs 25ms to forward the packet; packets travel at speed of light through the pipes; speed of light is 300'000 km /s = 3*10^8 m/s = 3E8 m/s; both computers are at the equator.

Run GPU in stealth mode

Please use this feature only if you own the computer. Anyway, even in stealth mode, GPU will show up shortly at startup. The feature was introduced on iap_mohan because the users of the Internet Coffee tended to close the small GPU icon on the taskbar.

To activate it, go to the Configuration tab and click on SaveOptions button first. Then open gpu.ini with notepad and change HideTrayIcon=0 to HideTrayIcon=1. Et voila, now GPU runs like a service in background...

How to publish your GPU on the network and get incoming connections

If you own a static IP number, you can follow steps from 1 to 6. If you have dynamic IP, things are more difficult and you have to read the entire tip from 1 to 13. Things work the same for other programs if you change the listening port (6346 in our case)

  1. on your router, make sure that port 6346 is forwarded to the computer that runs GPU. You can change this in the configuration of your router, this is called sometimes "SUA only" port forwarding or "virtual server" depending on the router's vendor. If you can choose between TCP/IP and UDP/IP, make sure you forward port 6346 only on TCP/IP.
  2. To do the port forwarding, the computer should have a static local IP address: for example 192.168.1.4, if the DHCP server of the router is configured to give out IPs from 192.168.1.32 to 192.168.1.64. Please do not confuse things: each router has a DHCP client (that gets a global unique IP number visible from outside that identifies the router on Internet) and a DHCP server that distributes local IPs (typically 192.168.X.X, not usable on the Internet) to the computers on the local network.
  3. Run GPU on the computer, check "Accept incoming GPU only" and un check "Autoconnect". This puts GPU in a listening mode, so that GPU won't bother you while you are working. GPU will generate very little Internet traffic with these settings.
  4. Because some people like to send the crab_simulator job, which blocks the virtual machine until someone answers the dialog message, you might want to delete crabs.dll in the \plugins subdirectory . If you let pde.dll and crypto.dll, you might get sometimes jobs that boost your CPU load to 100%. To avoid this, you can delete them as well.
  5. To start GPU on boot, you can click the "Run as service" option in the configuration tab...
  6. Et voila`, to get incoming connections from around the world (traceable in log.txt at best with the aid of Visualroute) you should send to dangermaus your static IP number (in case you have a dynamic IP number please read the following steps, where we explain how to setup a DNS name). Your static IP or your DNS-name will then be included into the list GPU downloads at startup: GPUs attempt to connect to all host in that list. If you should later get too many connections, we can first put GPUs in a modus where only one of these connections is tried, or we can delete your host from the list, if it causes too much trouble to you.
  7. So, you are still reading? You have a router that gets dynamic IP? Maybe every 20 hours so that you have to stand up at three o'clock in the morning to update your DNS-entry? Ok, then read point 8)
  8. There are pages like DynDNS.org that will allow you to give a DNS name (like seeschloss.no-ip.org, for example) to your computer. You have to download a program that runs in background on your computer and that keeps the IP number uptodate for the DNS name you chose. We recommend DynDNS-Updater for Windows (freeware).

    Alternatively, some routers offer in their web configuration a service to reach and update DNS. Go and check your router's configuration page. If an option "Dynamic DNS update" or something similar is present, you do not need to download additional programs like DynDNS-Updater.

  9. You can view your outside IP for example here. The client you downloaded will ask the router if the outside IP changed, and inform DynDns if it happened.
  10. You can check if DynDns works fine, by opening a DOS prompt (for example press on Start->Execute and type cmd). Then type the command nslookup yourname.is-a-geek.net. Make sure the returned IP is equal to the result showed if you visit the page in point 9)
  11. Repeat the check in 9) and 10) after 20 hours and see if the information was updated correctly
  12. Remember to send your DNS-name as described in point 6)
  13. Congratulations, you did it!

A short additional note: how is it possible for a router to know which packets are for whom, if all computers in the local network have the same outside IP address? The trick here is to use the source port address (a number between 0 and 65535, normally only the first 1000 ports are meaningful) to store information on the local computer that sends the packet. In TCP/IP, to answer a packet, the couple ([destination IP:Port][source IP:Port]) is simply flipped to build an answer, so the router will map particular source ports ranges to computers on the local network.

How to run GPU at given times

If you want to run GPU only at given times, for example at night in your Internet Coffee, you can download the GPU trigger program here. Running GPU with trigger will enhance stability: eventual memory leaks in the program will not harm: each time GPU is restarted the Operating System frees the reserved memory.

Trigger is a simple application that starts and stops GPU at a given time. The program runs as a service hidden from user's view. It is visible only by pressing CTRL+ALT+DEL in the Processes list of the task manager. To stop Trigger, one has to use the task manager.

To configure start and stop time, open first trigger.ini. Change the values after Start= and Stop=.

Copy both trigger.exe and trigger.ini into the directory, where gpu.exe is placed.

Run trigger.exe, eventually place it in the Autostart folder.

Finally, verify in trigger.ini that the Format= line has the same hour format you used for Start= and Stop= values. If not, change the start and stop lines accordingly and restart trigger with the task manager.

Send us your advanced tip or trick

Do you have an advanced tip? Send it to the dangermaus. We would be glad to list you in our team, too! :-)