Feature #2136
closedgraphic card computation version of findEM
Added by Anchi Cheng about 12 years ago. Updated almost 7 years ago.
0%
Description
Kai from Fei Sun's lab wrote a template correlator program based on FindEM that uses graphic card.
http://feilab.jbp.ac.cn/LBEMSB/AutoMatch.html
He wants to put it in Appion.
Updated by Anchi Cheng about 12 years ago
Neil,
I worked with Kai today. It looks straight forward enough. My solution is to create a subclass of templatecorrelator.py and a separate appionlib/apFindEMG.py to handle the creation of feed string, running, and peak reading from his output (see below).
His input is a one line command with same parameters as findem,exe. However, his output is a EMAN-style box file plus a correlation map. Since he uses a separate template mask diameter from correlation peak search distance, I think it is best not to do the normal apPeaks.findPeaks in the ccmap but read in his box file coordinate.
Three questions for you:
1. Does apPeaks use separate template mask diameter from correlation peak search distance already?
2. Do you see any problem in moving templatecorrelator.TemplateCorrelationLoop() into appionlib? It is the best way for me to create subclass from that.
3. I am considering not to make separate apSelectionParamsData. It is based on the same principle. However, I will need to allow some of the fields default to 1 since peak_area, for example, is not available by reading text box file (only has coordinates and correlation peak value). Do you see any problem in that or have objection?
Any other comment would be helpful.
Updated by Neil Voss about 12 years ago
Let me process your question and I will get back to you before the weekend.
Updated by Anchi Cheng about 12 years ago
- Assignee changed from Anchi Cheng to Amber Herold
For myamiweb/processing/runTemplateCorrelator.php, it will need:
- Check box to use GPU version if available (need config per processing host)
- Integer entry box for the GPU device number
- Float entry box for cross-correlation peak search multiple
The command output should be
- If GPU version is used, the python script to run is templateCorrelatorG.py
- GPU device number is added as --gcdev=0 (default)
- cross-correlation peak search multiple is added as --ccsearchmult=1.0 (default)
Updated by Amber Herold about 12 years ago
I've added a new value to the processing host configuration in config.php. The config should now look like this:
$PROCESSING_HOSTS[] = array('host' => 'guppy.scripps.edu', 'nodesdef' => '2', 'nodesmax' => '16', 'ppndef' => '4', 'ppnmax' => '8', 'reconpn' => '8', 'walltimedef' => '20', 'walltimemax' => '', 'cputimedef' => '200', 'cputimemax' => '', 'memorymax' => '', 'appionbin' => '/opt/myamisnap/bin/', 'appionlibdir' => '/ami/sw/leginon/betaleginon/appion/appionlib/', 'baseoutdir' => '/ami/data00/appion/', 'localhelperhost' => 'guppy.scripps.edu', 'dirsep' => '/', 'wrapperpath' => '/opt/myamisnap/bin/appion', 'loginmethod' => 'USERPASSWORD', 'loginusername' => '', 'passphrase' => '', 'publickey' => '', 'privatekey' => '', 'gpus' => array( '0.0' => 'device 0: Tesla', '1' => 'device 1', '2' => 'device 2') // use 0.0 instead of 0 to workaround issue. );
Notice the 'gpus' array at the end. This array should have the device number as the keys and a name/desc as the values.
Also note that device 0 is entered as 0.0. this is a workaround for an issue in the PHP where zero is changed to an empty string somewhere along the way. I'm taking the floor of this value prior to creating the command in the GUI, so that it is passed to the python as an integer.
Updated by Amber Herold about 12 years ago
Also, I am holding off on updating the configuration wizard. It will require a bit more effort than I have time for today and it will be error prone changes.
Updated by Amber Herold about 12 years ago
I'm checking in the GUI now, there are a couple of things left to do:
1. the setup wizard
2. the user guide: http://emg.nysbc.org/projects/appion/wiki/Template_Picking
Updated by Amber Herold about 12 years ago
- Status changed from New to In Code Review
- Assignee changed from Amber Herold to Anchi Cheng
Updated by Neil Voss about 12 years ago
Hi Anchi, for your question 1, I would have to review the code, I think I only use one diameter value.
So, this new version does not output the map, only the coordinates? You'll have to remove a lot of features from the pipeline.
Sounds like everything you are doing is probably the best way.
Updated by Anchi Cheng about 12 years ago
Neil,
It does output ccmap, but since we can not run here, and he said that the separate ccsearch distance helps getting good result, I am keeping its output so that it does not degrade the performance. We can change back easily by not overwriting the findPeaks in the subclass.
Updated by Anchi Cheng almost 12 years ago
- Status changed from In Code Review to Assigned
- Assignee changed from Anchi Cheng to kai zhang
r17305 moves the old bin/templateCorrelator.py to appionlib/apTemplateCorrelator.py with initial changes.
r17306 completes the change with debug and change in apPeaks.py and a creation of new bin/templateCorrelator.py that just starts an instance of the class in apTemplateCorrelator and runs.
r17307 adds bin/templateCorrelatorG.py that I worked with Kai.
Kai, this is now assigned to you to make the necessary change to work with your working version of the program. Let us know if you run into problems that we can fix here without actually running it.
Updated by Anchi Cheng almost 12 years ago
Missed one file
r17308 adds apFindEMG.py.
Kai, you should feel free to change appionlib/apFindEMG.py and bin/templateCorrelatorG.py. Be more careful if you need to change others since other programs would need to use them.
Updated by Anchi Cheng almost 7 years ago
- Status changed from Assigned to Won't Fix or Won't Do
did not get feedback about finishing this.