hxGrid and Distributed ATI Normalmapper


Version History
How to install ATI Normalmaper for hxGrid



23/08/2008 Article published on CodeProject.com.
hxGrid is hosted on SourceForge now.
23/08/2008 hxGrid 1.09d has been released.

hxGrid 1.09c has been released.

28/08/2007 hxGrid 1.09a agent with Windows 2000 support has been released.

07/08/2007 hxGrid 1.09Beta agent for Windows 2000.

16/07/2007 hxGrid 1.09 has been released. This is very stable release without any known major bug. Windows Vista supported. See version history.


Read article "Distributed computing in small office":

(English): http://www.codeproject.com/KB/threads/hxgrid.aspx

hxGrid is distributed computing library for C++ and Delphi.

hxGrid library allows to run tasks on PC cluster, using idle time of Windows XP/ Windows Vista workstations.
All tasks are processed transparently for workstation user. Any workstation can reboot at any time, and this will not brake the computation.

This is an ideal solution for a small ofice (10+ PCs), when decicated cluster is not affordable.

Curently, ATI Normalmapper has been rewriteln for hxGrid and available for download.

Santiago Orgaz has released xNormal with hxGrid support.

hxGrid is used in Deep Shadows in internal game development tools.

Distributed Normalmapper shows 27 (!) times computation time improvement when run on cluster,
and ~1.5 times improvement when run on single workstation with multicore CPU.

[1] Intel Pentium D Presler 3.0GHz
[2] Intel Pentium 4 2.8 GHz (HT)
[3] Intel Core 2 Duo 1.8GHz
[5] Athlon X2 3600+

Normalmapper.exe -on carlow.nmf carhigh.nmf 2048 2048 test.tga

Working time, hours


Speed improvement, times


Project is hosted on SourceForge.org: download

Version history

Version 1.09d
- fixed critical bug: unable to complete last few tasks, if task takes more then 20 sec;

Version 1.09c
hxGridUser and agent are changed in this release.
- new option: 'allowDiscardCoordinatorIP' - seel hxgrid.ini for description;
- fixed bug: hxGridUser is unable to run tasks, if single task size is larger then allowed memory usage for hxGridUser.

Version 1.09b
- added method "IGridUser->GetConnectionStatus()";

Version 1.09a
- added agent support for Windows 2000;

Version 1.09
- fixed critical bug: memory corruption in agent;
- fixed critical bug in scktcomp.pas delphi component (thread-safety issue);
- fixed critical bug: agent is unable to load task dll in Windows Vista;
- fixed thread-safety bug in agent and griduser (AddRef()/Release() should use InterlockedXXX);
- fixed memory leak in agent (IdUDPServer not freed);
- fixed IGridUser->GetSettings() and IGridUser->SetSettings() .h headers;
- IGridUser->isComplete(var complete:boolean) now returns TRUE
when no tasks is running (was: FALSE);
- hxgriduseddll.dll updated in PICalculator\C++ example;
- fixed AutoUpgrade example: unable to upgrade
due to relevance to current directory;
- fixed memory leak in GridGMP example;
- fixed DebugWrite bug: exeption on invalid strings causes agent to lost connection;
- fixed possible thread-safety issue in agent.filecache;
- new method: IAgent->GetSessionCacheDirectory();
- new method: IAgent->GetGlobalCriticalSection();
- new IGridUser setting: failed_agent_suspend_timeout;
- updated TAgentSettings in IAgent.h;
- IAgent.h and I_Agent.pas documented in English;
- Normalmapper_hxGrid_Setup installs 3ds MAX and Maya NMF export plugins;

Version 1.08a
- article translated to English;
- headers are documented in English;
- cancellation support;
- fixed bug in IAgent->GetData();
- fixed bug: freezing on 99.99%;
- fixed bug: lost tasks if IAgent->GetData() failed;
- fixed bug: hxgrid application is unable to work,
if workstation has not been rebuted more than 25 days;
- settings tuned for large IAgent->GetData() size;
- fixed GridGMP sample (all drawing is done in main thread);
- network and memory overload tracking: at the start of the session, too many agents request data from user. Library tracks network and memory load;
- GridGMP example shows cancellation support and progress display;
- ATI Normalmapper installer installs NMF export plugins to plugin directories of 3DS MAX and Maya;
- more accurate progress display in ATI Normalmapper;
- NMFExport plugins for Maya 7.0, 8.0 and 8.5 included;

Note: agent and coordinator are modified, but have the same interace versions.
Upgrade recommended (see Examples\Autoupgrade\);

Version 1.08 beta
- initial public release;



1. General-Purpose Computation Using Graphics Hardware

2. Ambient occlusion - From Wikipedia, the free encyclopedia

3. NVIDIA CUDA Homepage

4. Incredibuild by Xoreax software

5. Globus Toolkit Homepage

6. Кластерная система Condor


8. libGlass - distributed computing library

9. Alchemy - distributed computing library

10. Программирование с использованием COM-подобных интерфейсов.

11. То, что вам никто не говорил о многозадачности в Windows

12. The GNU MP Bignum Library

13. ATI Normalmapper

14. Jedy Visual Code Library

15. PlayStation 2: Computational Cluster

16. Unmodified Xbox Cluster

17. Информационно-аналитический центр parallel.ru

18. Распределенные вычисления: поиск лекарства от рака


20. Взлом NTV+ с помощью распределенных вычислений

21. Знаете ли вы, что большинство времени ресурсы компьютера используются менее чем на 5%?

22. Распределенные вычисления с минимальными затратами

23. Распределенные вычисления на FreePascal под Windows.

24. Распределенные вычисления - паразитные вычисления

25. Sony рассматривает возможность продавать процессорное время PS3

26. ZLIB

27. NVIDIA Texture Tools 2 Alpha

28. GPU Mapper - similar tool running on GPU

Back to main page.

How to install ATI NormalMapper for hxGrid


System requirements:

A couple of PCs running Windows XP SP1/SP2 or Windows Vista, connected via local network.

1. Download hxGrid Coordinator and install on any workstation in the local network. Coordinator should be installed only on one workstation in the local network. This PC should always be available to coordinate hxGrid.

2. Download hxGrid Agent and install on all workstations in the local network.The more PCs are running the agent, the more fater will hxGrid apps work.

3. Download ATI Normalmapper for hxGrid and install on any PC in the local network.

No additional configuration is required.

hxGrid also can be used to utilize all CPU cores of single PC. In this case, Coordinator, Agent and ATI NormalMapper for hxGrid should be installed on this PC. If PC does not have network adapter with IP address, "Microsoft loopback adapter" can be installed and assigned some IP address. Typical dualcore PC can achieve 50-80% speed improvement.


Copyright (C) 2007 by Roman Lut

Rambler's Top100