HFM.NET - Client Monitoring Application for Folding@Home

harlam357

n00b
Joined
Mar 7, 2007
Messages
48
1a3s-cartoon-close-icon-gimp.png


HFM.NET - Client Monitoring Application for the Folding@Home Distributed Computing Project

Homepage on Google Code: http://code.google.com/p/hfm-net/
Please see the Homepage on Google Code for the latest version.

Google Group: http://groups.google.com/group/hfm-net/
Please see the Google Group for complete release notes, help, and support.

HFM_Current.png
 
Last edited:
i likey.. i likey.. i will check this out and pass on my thoughts..

ok first thought.. i dont know if its just me.. but i can not have my gpu client running otherwise it lags like a mofo.. so im not sure if its just my computer or if this is happening with everyone running the gpu client since i am running my card on the bleeding edge of its overclock..
 
Last edited:
Nice app :). I'm trying it out right now. I quite like that it displays the time per frame. One little issue that I have with it though is that the height of the log file display can't be adjusted. It would be nice if you could add in that functionality. Aside from that, it seems to be working great.
 
are you running a gpu client zero? trying to find out of this lags just on my side because of my overclock..
 
Great job on this monitor. It seems to combine the things I liked best about FahMon and FahSpy. I especially like the log file viewer. I'm having no problems tracking my two VMs, my GPU, and my laptop.



 
Yes, I'm running a GPU client. I'm not experiencing any lag.


oh well guess its just my card.. im not willing to drop my shaders to 1836 and lose 300 PPD.. so i guess im stuck with fahspy.. darn.. was really hoping for a good replacement like this one..
 
sirmonkey - I thought he pointed out that the lag is a XP issue, and that Vista / Win7 machines do not have this problem - it appears as thought he lag is unrelated to overclocking...

I'm enjoying this release so far - no lag with Vista x64, while the GPU client is running. I really like your approach and sincerely hope you continue to refine this!

I have noticed that the "Failed" count appears to include failing to receive a WU, rather than just the GPU failing to complete a unit. This is an important distinction in my mind.
 
I will test this out on my main rig next week. I have to take it down today (for the remainder of the week) so I can package up the temp eVGA MoBo to send back to Fry's.
 
i likey.. i likey.. i will check this out and pass on my thoughts..

ok first thought.. i dont know if its just me.. but i can not have my gpu client running otherwise it lags like a mofo.. so im not sure if its just my computer or if this is happening with everyone running the gpu client since i am running my card on the bleeding edge of its overclock..

Yep... this is an XP issue running with the primary GPU Folding. I believe Vista & Win7 don't experience this issue due to the rather different driver model used by those OS vs. XP. I have not yet found, but am still looking for, a solution... however, there may not be one.

Nice app :). I'm trying it out right now. I quite like that it displays the time per frame. One little issue that I have with it though is that the height of the log file display can't be adjusted. It would be nice if you could add in that functionality. Aside from that, it seems to be working great.

Check... I'll add the log file adjustment to the requested feature list.

Great job on this monitor. It seems to combine the things I liked best about FahMon and FahSpy. I especially like the log file viewer. I'm having no problems tracking my two VMs, my GPU, and my laptop.

Excellent! Thank you for those kind words. :)

sirmonkey - I thought he pointed out that the lag is a XP issue, and that Vista / Win7 machines do not have this problem - it appears as thought he lag is unrelated to overclocking...

I'm enjoying this release so far - no lag with Vista x64, while the GPU client is running. I really like your approach and sincerely hope you continue to refine this!

I have noticed that the "Failed" count appears to include failing to receive a WU, rather than just the GPU failing to complete a unit. This is an important distinction in my mind.

That's correct I haven't found GPU OC'ing to be a factor in the "lag on XP" issue.

The 'Completed' count is determined by how many times the string "FINISHED_UNIT" is found in the log... likewise, the 'Failed' count is determined by how many time the string "UNSTABLE_MACHINE" or "EARLY_UNIT_END" is encountered while parsing the log. Those are the only strings that will trigger that count to go higher. If you see anything in the 'Failed' column you can be sure that one of those strings was encountered.

This is going to continue to be actively developed... the next step is adding benchmarking similar to FahMon. Also, Mono support is a near term goal to add support for Linux and OS X.

I don't know how many people use the 'Web' feature of FahMon... but I encourage everyone to try the 'HTML Output' feature of HFM, even if you don't plan on publishing the output to a server... it's just pretty slick. :)

Thanks everyone for the kind words and feedback. I hope you enjoy! :)
 
Check... I'll add the log file adjustment to the requested feature list.
Awesome :). Fahmon also doesn't have that and it's a bit irritating since I need the window to be a certain size to fit on my secondary monitor. I'll probably ditch Fahmon for this entirely once that's added.
 
New Version: 0.1.1 - Build 13 - Beta - Download

- md5: f32f78bd049ec56550620a501a7879d0

- sha1: dac8b329d457709bbf976694d3c35884396c376a

Change Log

  • Fix: Set DoubleBuffering on the DataGridView to fix extremely slow painting on XP while GPU2 is active. If this doesn't fix the problem of slow UI response, then nothing will.

  • Change: Increase maximum UnitInfo.txt size to 1 Megabyte.
  • Change: Fix host path regex to accept fully qualified server names such as my.server.com (patch from smartcat99s).

  • Enhancement: Add capture of Username and Team to the main grid.
  • Enhancement: Allow the log file window to be sized.

Upgrading HFM to the latest release

  • When upgrading HFM, please take the new Zip file and extract it to the same location as your current install and overwrite the older files.

  • The user settings are tied to the location of the HFM.exe file. So if you move or otherwise rename any directory in the path to the HFM.exe file, you will lose your custom settings. Please choose your install location wisely, I recommend a very generic folder name like "\Program Files\HFM". Settings will also not follow the application from machine to machine. It is possible to transfer them and I will post instructions on how to do so at a later time.
 
Very nice. Thanks for adding the adjustable log file area :). I'm now using this instead of Fahmon.
 
Hold the phone!!! :D

New Version:
0.1.1 - Build 14 - Beta
- Download


- md5: 793a6e1949b0ee40bb36b6aec666bc0b

- sha1: e9c0ceaf32d6f3c1c6033c5ec4af91bf1c3a4d40

Change Log

  • Fix: Corrected on error in the log parsing that was causing SMP A1 Core (and likely Standard Client Cores) to fail parsing. Resulting in the clients status staying yellow.

Upgrading HFM to the latest release

  • When upgrading HFM, please take the new Zip file and extract it to the same location as your current install and overwrite the older files.

  • The user settings are tied to the location of the HFM.exe file. So if you move or otherwise rename any directory in the path to the HFM.exe file, you will lose your custom settings. Please choose your install location wisely, I recommend a very generic folder name like "\Program Files\HFM". Settings will also not follow the application from machine to machine. It is possible to transfer them and I will post instructions on how to do so at a later time.
 
Hey harlam357, I have a few questions, sorry if they sound stupid:
1) How do you get the program to read log files on other Windows machines on the network?
2) How do you get the program to read the log files on VMWare machines on the same box, or other boxes on the network?
3) How do you get the program to read the log files on pure Linux boxes on the network?
 
Hummmm, thought, since I fold from 2 different locations, could I have 2 copies of HFM publish to the same webdirectory and will it show the results combined on the same page?
 
1) How do you get the program to read log files on other Windows machines on the network?
2) How do you get the program to read the log files on VMWare machines on the same box, or other boxes on the network?
3) How do you get the program to read the log files on pure Linux boxes on the network?
All you would have to do is point the program to the log file directories for all your clients and it'll pull the info from them. It's exactly the same as what you would do with Fahmon or Fahspy.
 
I understand that part Zero82z, but I guess I'm asking an even more pathetic question, I don't know how to do that!

In Windows would I only need to set up Network Shares for the Folders where the log files are? What if they are in different locations across town/US?

And in Linux I'm clueless, never got into how to make Windows & Linux computers interact on one network.

I understand this may be way off topic for this thread, so if someone might be able to PM me to keep this thread on track, I'd appreciate it!
 
In Windows would I only need to set up Network Shares for the Folders where the log files are? What if they are in different locations across town/US?
Yes, you would just need to set up network shares. As for monitoring computers that aren't within your network or are in different locations, there's really no straightforward way to do it. If you want to monitor them all in the same program, you'll have to set up some sort of VPN, which isn't too simple. You could also use the program on the computers that you want to monitor and use the web page generator to make up a stats page and then upload that to a webserver somewhere and look at that to monitor the stats. However, I personally couldn't help you with that since I've never done that sort of thing before. I know that EvilAlchemist does it with Fahmon, so you should probably ask him about it if that's something you're interested in.
And in Linux I'm clueless, never got into how to make Windows & Linux computers interact on one network.
You'd have to set up Samba in Linux. However, if you're using any notfred's boxes, they'll already be set up for that. All you have to do is look at the IP address each machine gets when they start up, and then log into the web interface for each box by putting the IP address into a browser. Then, go into the configuration area and change the network name of each box to whatever you would like it to be. Once you've done that, just do the same thing as you would do with a Windows box.
 
New Version: 0.2.0 - Build 17 - Beta - Download

- md5: b2e42fffe2957b2a5894c6d048e57090

- sha1: 5b89491759c8c60e477bb85cd45138f3453959ed

Change Log

  • Enhancement: MAJOR REWORK!!! Added support for Benchmarking Work Units.
  • Enhancement: Added ability to save the currently in progress UnitInfo objects on application exit. This allows the state of the last known projects in progress to be restored the next time the application starts.
  • Enhancement: Added output of completed units to CompletedUnits.csv file. Allows external analysis of completed work. Preliminary at this point, still needs a little work I think.
  • Enhancement: The benchmarking changes yield the functionality to show frame times (PPD, etc) as 'AllFrames' and also 'EffectiveRate' in addition to 'LastFrame' and 'LastThreeFrames'.
  • Enhancement: Added option to Import FahMon style ClientsTab.txt files as a HFM Configuration (used file from v2.3.99.1 to test).

  • Fix: Fixed HUGE BUG in the frmMessages.UpdateMessages() routine which resulted in full UI deadlock (use BeginInvoke in lieu of Invoke).
  • Fix: Unit DownloadTime now handled correctly for clients marked as 'Client is on Virtual Machine'.
  • Fix: Fixed small bug where a DirectoryPathSeparator character was being added to the end of a PathInstance path every time the TextBox was left (added in Rev 15 - no build produced).

  • Change: Add StringOps.cs Class to facilitate validation and parsing of Client Instance data strings.
  • Change: Update ClientInstance Http and Ftp download routines (these are now verified working).
  • Change: Add "Wrapper" classes (that specify DoubleBuffered = true) for the most commonly used controls in an effort to further reduce UI lag.
  • Change: Host Instance Add/Edit Dialog got a much needed work over. Now using StringOps for input validation.
  • Change: Allow the user to continue with Client Input Parameters that fail validation if they choose to do so (not recommended).

Upgrading HFM to the latest release

  • When upgrading HFM, please take the new Zip file and extract it to the same location as your current install and overwrite the older files.

  • The user settings are tied to the location of the HFM.exe file. So if you move or otherwise rename any directory in the path to the HFM.exe file, you will lose your custom settings. Please choose your install location wisely, I recommend a very generic folder name like "\Program Files\HFM". Settings will also not follow the application from machine to machine. It is possible to transfer them and I will post instructions on how to do so at a later time.

Here it is folks... whew... I've been busy. :D Adding Benchmarking facilitated *A LOT* of refactoring. That being said, I know there have to be some bugs with the benchmarking. Hopefully no show stoppers... I've beat on the code as much as I can stand. Time for some of you guys to try it out. :) I'll be doing fixes on any reported bugs for the next week or so, maybe a small feature, but otherwise my attention will be turned to Linux/Mono support for our Linux friendly Folders. I hope you enjoy the latest release.
 
Well, you made it practically identical to FahMon's benchmarking feature, so I can tell you right away that I'll like it ;).
 
I thought about using a DataGrid (like the main UI)... then I decided against it. I didn't want another extremely wide grid to manage. ;)

Really what drove me to that format is that people like to post up benchmarks on forums... and that format just makes it really easy to copy/paste.

Also, check out the CompletedUnits.csv file (for importing into external tools) that is generated in the same directory as HFM.exe. It contains info on any fully completed WUs that HFM observes. Still needs some work I think, but I'd like some feedback on that feature as well.

Thanks Zero! :)
 
I haven't completed any units while running this version yet, but I'll have a look when I do.
 
Cool deal. :)

Be careful with the 'AllFrames' option when monitoring... something is up there that I didn't notice while testing. The 'AllFrames' frame time is showing up as half what it should be in some cases... other cases it is just a second less than the Minimum Frame Time. I'll have a look at this tomorrow. Not a show stopper... just wish I would have seen this before doing the build. :(

Growing pains man.... Growing pains...
 
Be careful with the 'AllFrames' option when monitoring... something is up there that I didn't notice while testing. The 'AllFrames' frame time is showing up as half what it should be in some cases... other cases it is just a second less than the Minimum Frame Time.
Noticed that already. Same thing seems to be happening with the EffectiveRate option as well.
 
Effective Rate looks ok here.... the frame times are greater than the minimum frame time. Which is what I would expect.

Again, will look at this tomorrow... if these calculations are the only problem anyone finds... I'll be a happy coder. :)

Thankfully 'LastThreeFrames' still appears spot on. :)
 
I think the 'EffectiveRate' is ok... based on what I'm seeing. If you find any times that just look way off with the 'EffectiveRate', please take a screenshot and post it up for me.

Found the issue with the 'AllFrames' calculation. It's an easy fix. Working on a couple quick features/fixes to go along with it... new build tonight or tomorrow. :)
 
None of my SMP clients seem to be read appropriately. I'm using notfred's VM clients, and I have tried pointing the HFM.NET client path to the network share (\\fold-03CC\C\etc\folding\1\ - for example), and to the web path (to FAHlog.txt)

The # of completed units is properly displayed, along with the current Project # (2669) and credit, but the progress sits at 00%, despite the fact that I know the SMP unit is running (verified with FahSpy, and looking at the logfile.)

What am I doing wrong?
 
None of my SMP clients seem to be read appropriately. I'm using notfred's VM clients, and I have tried pointing the HFM.NET client path to the network share (\\fold-03CC\C\etc\folding\1\ - for example), and to the web path (to FAHlog.txt)

The # of completed units is properly displayed, along with the current Project # (2669) and credit, but the progress sits at 00%, despite the fact that I know the SMP unit is running (verified with FahSpy, and looking at the logfile.)

What am I doing wrong?
Right-click on the client, select Edit Client, and check the option called "Client is on a Virtual Machine". That should do it.
 
looks promising, might have to try it out when the new build comes out
 
Unfortunately, I've already tried selecting "Client is on a Virtual Machine", but to no avail. I'm pretty stumped. Even if that checkbox is not selected, the progress meter should still move, just the ETA should be off. (I think)....
 
None of my SMP clients seem to be read appropriately. I'm using notfred's VM clients, and I have tried pointing the HFM.NET client path to the network share (\\fold-03CC\C\etc\folding\1\ - for example), and to the web path (to FAHlog.txt)

The # of completed units is properly displayed, along with the current Project # (2669) and credit, but the progress sits at 00%, despite the fact that I know the SMP unit is running (verified with FahSpy, and looking at the logfile.)

What am I doing wrong?

Debugging this is pretty easy... Just go to the Preferences -> Defaults -> Message Level -> Change it to 'Verbose'. Then refresh one of your clients again and check the Messages Window (Tools -> Show/Hide Messages Window).

Code:
[5/30/2009-2:58:13 PM] + HFM.Instances.ClientInstance.DetermineStatus (WinSMP - HTPC)
[5/30/2009-2:58:13 PM] +  - Retrieval Time (Date) ------- : 5/30/2009 2:58:13 PM
[5/30/2009-2:58:13 PM] +  - Time Of Last Frame (TimeSpan) : 14:51:53
[5/30/2009-2:58:13 PM] +  - Offset (Minutes) ------------ : 0
[5/30/2009-2:58:13 PM] +  - Time Of Last Frame (Adjusted) : 14:51:53
[5/30/2009-2:58:13 PM] +  - Prior Day Adjustment -------- : False
[5/30/2009-2:58:13 PM] +  - [B]Time Of Last Frame (Date) --- : 5/30/2009 2:51:53 PM[/B]
[5/30/2009-2:58:13 PM] +  - [B]Terminal Time (Date) -------- : 5/30/2009 2:33:03 PM[/B]

You should find some output as you see above. HFM expects the machines it is monitoring to have an analogous clock (system time) setting as the machine on which HFM is running. Understandably this is not always the case. To combat this, one can setup each client with a specific 'Offset' value.

This 'Offset' is used to determine the 'Status' of the client in question. In the above example you'll see that the Time Of Last Frame is later than Terminal Time. If this is the case, the client is deemed to be running. Terminal Time is calculated differently for GPU clients vs. CPU clients. However, in either case, the Time Of Last Frame must be later than the Terminal Time. If the opposite is true, then the client will be deemed Hung and will not show any progress percentage, TPF, PPD, etc.

In the case of the notfred's VM... yes, you will still want to check the 'Client is on Virtual Machine' option. Then Debug with the times as I've stated above.

What I would recommend you do is set the system time on your monitored machines to the correct time. If that is done, you won't have to set any 'Offset' value for your clients. Much simpler approach. :)
 
New Version: 0.2.0 - Build 18 - Beta - Download

- md5: 68230b6e6bef4dc37c9a60b6b5cfddc0

- sha1: 9a10b8ada75e0ed69da938947b23c43a011a8491

Change Log

  • Fix: Fixed the problem with completed units being written to the CompletedUnits.csv file with no frame time or PPD.
  • Fix: Fixed problem with determining client 'Status' when a client resumes from a paused state (specifically a very long pause).
  • Fix: Pull the last Username and Team ID string from the FAHlog.txt file, not the first.
  • Fix: Fixed 'AllFrames' calculation.
  • Fix: Wrap the FAHLogStats.NET Link process start on the About Dialog in a try/catch.

  • Change: Use Path.Combine and remove hard coded "\\" platform specific Path Delimiter characters.
  • Change: Change log file name defaults to their accurate, case-sensitive names "FAHlog.txt" and "unitinfo.txt".
  • Change: Minor UI tweaks to the Benchmarks Form Layout.
  • Change: Replace Forms based timers with System.Timers.Timer objects (no need to Invoke calls anymore).
  • Change: Corrected "\\" to "//" in the commented logo areas of the Overview.xml and Summary.xml files.
  • Change: Changed the HTML Output "Page rendered" strings to read "Page rendered by HFM.NET on...", also reformatted the xslt files.

  • Enhancement: Add "Auto Save Configuration" option.
  • Enhancement: Add support for detecting clients as Hung before they have generated a valid frame time.

Upgrading HFM to the latest release

  • When upgrading HFM, please take the new Zip file and extract it to the same location as your current install and overwrite the older files.

  • The user settings are tied to the location of the HFM.exe file. So if you move or otherwise rename any directory in the path to the HFM.exe file, you will lose your custom settings. Please choose your install location wisely, I recommend a very generic folder name like "\Program Files\HFM". Settings will also not follow the application from machine to machine. It is possible to transfer them and I will post instructions on how to do so at a later time.

Basically a quick fix release for a few non-critical issues that showed up in Build 17. Build 17 was a major milestone, so I'm not at all surprised that a little fix-up was necessary. Otherwise, just a few enhancements... most noteworthy, the ability to have configuration changes auto save. Seems like some folks forget to save their changes, so this will help those folks out. Lastly, I made some changes to get rid of some platform (Windows) specific issues with the code (mainly with file paths) in an effort to remove some issues before diving into Mono (Linux/OSX) Support.

I've also setup Donations for the HFM.NET Project via PayPal. Please feel free to donate if you find HFM.NET useful and want to support its ongoing development.

Donate to the HFM.NET Project with PayPal


Please also feel free not to donate. HFM.NET is free software. Any donation is considered a "Thank You" for my time spent developing HFM.NET and the time I will spend developing future enhancements.
 
New Version: 0.2.0 - Build 20 - Beta - Download

- md5: e00511463fc31a6e75f92cfc4c60419f

- sha1: 939135b95f48392370b4b98bad876974c5f79093

Change Log

  • Fix: Only accumulate Completed and Failed counts on most recent unit parse.
  • Fix: Final fix for resuming from a long pause. I think I've got it licked now.
  • Fix: Parsing of frame percentage from older clients like v5.02.
  • Fix: Parsing Frame 0 - which doesn't happen with GPUs and rarely on SMP. However, Standard clients often report Frame 0.
  • Fix: Unhandled exception that occurs when viewing the benchmarks window with no clients loaded (actually no client selected).

  • Change: Setup frmPreferences to only show the WebBrowser control when not running under Mono Framework.
  • Change: Patched the main Project Resources.resx file for case sensitivity.

Upgrading HFM to the latest release

  • When upgrading HFM, please take the new Zip file and extract it to the same location as your current install and overwrite the older files.

  • The user settings are tied to the location of the HFM.exe file. So if you move or otherwise rename any directory in the path to the HFM.exe file, you will lose your custom settings. Please choose your install location wisely, I recommend a very generic folder name like "\Program Files\HFM". Settings will also not follow the application from machine to machine. It is possible to transfer them and I will post instructions on how to do so at a later time.

Donate to the HFM.NET Project with PayPal


Nothing too special here... other than some bug fixes. Hopefully this will be the last Build under the 0.2.0 version. Setting up to get our Linux minded friends a somewhat supported Mono Build / Instructions. Otherwise, I'm planning for the future. Hopefully the next release will be a feature release. But for the mean time, I plan on taking a small break. May look at this a little this weekend, work on web documentation, but not too heavily.

Thank you again to the following people who have donated to the HFM.NET Project (no particular order)

  • David Fonda
  • Michael Obermeier
  • moltenrain
  • David Dory
 
Last edited:
Back
Top