I'd like to thank Vijay for weighing in here - it confirms my already strong belief that the client and it's usability is significant importance to the F@H team, even though the core focus of their work is on the science being produced.
I think this thread has encouraged myself to throw out the mindset that can become prevalent once someone has used a particular style/type of software for a period of time, and rather take a 'fresh' , or blue sky approach; just because a client has been run one particular way, doesn't mean it has to continue to run that way.
To that end, I'm going to go down a path of blue sky dreaming, about what I would like to see from a 'universal' client. I want to stress that this isn't a criticism of the current generation of clients, nor of the process behind developing each generation of clients (in fact, the opposite, as an end-user, I am in full praise and 100% in awe of the work of the Pande Group). For the sake of this exercise, I'm describing my own vision of a universal folding client - lets say "future-FAH", which provides all the usability benefits of CLI and/or GUI.
To pick up on Bruce's comments, "This happens simply because at some point during the installation, they start the client with an incorrect setting", he lists two solutions, maintain the status quo, or remove the ability to adjust the settings. But there is a third option - make it easier for the end-user to correctly adjust the settings, in a manner which will give them a better chance of correctly configuring their client. How would I like the future-FAH client differ from current version?
1. Remove flags; I'll be honest, they've caused me headaches and then some - not just for me, but for other members of my team. How would I go about doing this? For the GUI:
a) Create a step-by-step installation process that allows you to select, through a tabbed process, how you want to run your client ie SMP, uni, GPU.
b) In this installation process, allow users to stipulate how many cores they want to use & the % of each CPU they want to use, regardless of SMP or uni-proc (as the OP mentions, allow the client to spawn multiple single core processes if desired.
c) Perhaps let the user add a value (estimated) of the % of hours in a day they generally leave their machine on. Allow the client to monitor the true proportion and update, if the user so wishes, but allow the user to disable auto-maintenance if they realllyyy want.
d) For post-installation adjustments, utilise a separate configuration app to adjust settings once installed, make the default 'end option' ensure that the client finishes off each currently operational work unit and then restart with the new settings/configuration, but in just in case, provide a 'restart client now' for any emergency situations (giving lots of warnings/are you really sure you want to do this to discourage it unless absolutely necessary!).
d) Make 'advanced methods' discrete. Some applications require you to press F5 (and provides warnings etc to ensure you really want to do it) to access advanced options; do the same for folding.
Remove flags the CLI:
a) Replace -config with the above configuration app, obviously designed for CLI (like you get when you're configuring other CLI applications (cant remember the name of the style!), provide all the same settings etc and options. Design the client so it won't run if it hasn't been configured by the config app, but allow for users to roll out a client pre-configured (or copies of a configured client) on multiple machines.
For both GUI & CLI:
1. Webui?
My inspiration for this comes straight out of Linux_FAH's VM; develop a stand-alone app that allows for a webui configuration page, to allow both clients the ability to be configured via webpage. Linux_FAH's is out of the box outstanding.
2. Work unit suitable for a computer - small,normal,big - for an entire computer system.
Create a matrix of variables based on a user's components to spawn a code, which falls within a particular 'bin'. A c2d with 4GBs of ram might fall in bin "3", which reflects work units that requires a comparable amount of computational power. These bins can be quite broad and clients would be able, if necessary, to run smaller binned WUs, so that if there is a shortage of "3"s, it could run a "2" work unit, until another "3" turns up; but it won't run a "4". As the bottom rung of work units becomes 'obsolete' (and this could be run extremely conservatively), the client would be informed that the system is unfortunately not powerful enough to continue providing work to the project.
More, perhaps, controversially, ditch the viewer for computer (ie not PS3) FAH altogether
. Spin it out as a 3rd party open-source/community built and supported application or encourage a 100% community built version. (This may actually be happening, I'm not sure!).
Moreover, encourage/facilitate a 3rd-party open-source developers centre. At the moment, there is a wide range of 3rd party apps (FAHmon, HFM.net etc) that can be quite difficuilt to find exist/track down, but some of them are really really quite good and allows those with the skills to contribute to FAH in a way that allows the Scientists to do the Science. A single location for open-source, 3rd party apps governed by, but for which Stanford is not responsible for in any way, and provides no guarantees over etc, in my mind would provide a community for developing these 'enchancement' apps in the same way that these forums provide a community for Folding@home. Perhaps just as there is a team of dedicated and hard working community Moderators here, a team of appropriately skilled community Moderators can oversee the 3rd-party app centre.
So there you have my future-FAH client
Also, one final thing I'd love to see is a user/account/passkey system, where users with passkeys can keep track (through a password system) things like their passkey ratio (to ensure it's above .8) and other information that's not available for the whole world to see in public pages!
Once again, this is just an exercise and in no way a criticism of the current clients/plans. Rather, it's end-user's point of view. You know you have a dedicated community of users when one ponders this over at 3am in the morning (well, it was actually 4am as the clocks had just changed back here
) and I will continue to push my team to continue working our way up the charts! 9.6 million points and counting
.
Thank-you for letting me think creatively this quiet Easter weekend, I'm going to go back to working on my insane watercooling system project now; 10m loop and all.
k1wi