Www.heteroclinic.net is the personal home page of Zhikai Wang. Zhikai holds a master degree of computer science from Concordia University, Canada.
You can consult Zhikai for general issues related to computer science and software engineering. Zhikai specilizes in:
- concurrent programming
- network programming
- computer graphics (3D)
- general enterprise IT solutions
Zhikai has been working on the following projects:
- treetor, a tree/forest rendering tool
- jdfr, Java Dead-lock Free Runtime (the goal, may be too ambitious)
- qtwagon (not revealed yet)
- sinpixa (factorize composite number)
Zhikai's recent goals:
- continue qtwagon
- ApacheGL (feasibility analysis)
- jdfr will use OpenGL rendering engine
- Depth peeling transparency finalization
What we are going to do?
- compile integrate Freeglut as a module of Apache Web server
- provide an API so the Web clients(multiple) will share the same GL machine instance at the server side, this will require advanced synchronization mechanism.
- we also intend to feed back the rendering frames as video streams
Upon the accomplishment of this project, the cloud computing, not only the online 3D game design will be promoted to a new level. The server can be very fat GPU clusters, the clients could be so skinny with just a stream player and control buttons.
Motivation and Benefits
Current multiplayer online game (3D) will utilize the GL machine at the client side. This will be difficult for collision detection, conflict resolution etc. A central GL machine server as a module of Web server will make possible: Web browser 3D game, low hardware requirement for clients, full utilize GPU/GPU clusters, better collision detection, event synchronization, conflict resolution etc.
Phase I feasibility analysis
- proper hardware with general GPU, at least OpenGL support
- if possible, use GL machine without X or GUI
- compile Freeglut as module of Apache Web server
Phase II Synchronization Architecture
- design how to share one GL machine among Apache sessions
- multiple GL machines for multiple sessions, many to many, many to one
Phase III Rendering to stream and Client API
Project Plan Extra
- quality assurance
- documentation and API design
- a commercial deployment
Basically, this will be a personal prototyping project. It is estimated to be done by two thousand man hours. The investors will be cut in upon the size of investment and phase status. The result will be applicable upon Science Technology Promotion license by default.
Runtime Deadlock Detection XXVII
More Tested Examples
Entry point: Fast
Entry point: Random
Runtime Deadlock Detection XXVIII
Today, we release
- it fully supports Java ReentrantLock
- it has several proto-types, quick-starts or just say examples -- in the Blog section
It will be a very useful tool to profile concurrent programming. We also have treetor
We corrected some mis-understandings. They are critical but finally not fatal to this project.
I am still not sure about next step. I hope there will be more people download and study what I did. It will be a great pleasure that you can achieve something with these tools. Science and technology does not rely on luck. If you find any bug or errors, please feel free to point them out. This project is done by one person, so it is convenient to control. In real life projects, we have to resolve human conflicts, legacy pacakges etc. Some time you do not even have the source code not mention how to modify them. So we can not simply put a easy or difficult label for a project.
The methods we tried or proposed, may be helpful while extending to profile database system, interprocess concurrent programming, the operating system, or for clustered computing units. Concurrent programming in some sense destroyed the von Neuman architecture, much more effort is needed for understanding or utilizing the nature of concurrency.