Forum Jump

Select Group :
Select Forum :
Sorted By :
Sort Order :
From The :
 
Thread Tools  Search this thread 
Aaron Tersteeg (Intel)
Total Points:
15,561
Status Points:
15,561
Community Manager
October 22, 2007 12:40 PM PDT
CFinder: Application Concurrency Audit Tool
Intel has just released a free Application Concurrency Audit Tool called CFinder. I'm setting up this discussion thread to provide support to CFinder users and discuss the tool. Please take a moment to download and run it on the application you are developing. We want to hear your feedback and incorporate your ideas into future versions of the tool.
diptendu
October 25, 2007 12:50 AM PDT
Rate
 
#1
Hello,

Is there anything new for software products that make use of the Java Virtual Machine to consider in CFinder?

Regards,

Diptendu Dutta
http://www.aunwesha.com


quickwayne@gmail.com
October 28, 2007 7:18 AM PDT
Rate
 
#2
Hi Aaron,

I got an error box when applying CFinder for quicksort. It says "Get max thread error" and "Can't queue data" a while after I pressed start button. It seems that CFinder can't get the thread information in the first run but can I solve it? Thanks.

Greetings,
Sunwei



Aaron Tersteeg (Intel)
Total Points:
15,561
Status Points:
15,561
Community Manager
October 28, 2007 3:59 PM PDT
Rate
 
#3 Reply to #2
Sunwei,
I'll see if we can get the same error and work on a solution this coming week.
Thank you for the feedback. Please check back in a few days and I hope to have a recommendation/update/fix by then.

Cheers,
Aaron



quickwayne@gmail.com
October 28, 2007 4:10 PM PDT
Rate
 
#4 Reply to #3
Hi Aaron,

That's fine. The PC I use is DELL latitude D620 laptop with Intel Core Duo 2.0G with 2048KB cache, 2G DDR667 SDRAM, running Windows XP. The compiler is Visual C++ 2005 Express free version. Thanks.

Greetings, Sunwei


Aaron Tersteeg (Intel)
Total Points:
15,561
Status Points:
15,561
Community Manager
November 7, 2007 10:46 AM PST
Rate
 
#5 Reply to #4

Sunwei,

We couldn’t recreate the error and would like to get to the bottom of the issue.

Could you please:

1)      To Send us his “quicksort” binary (.exe) file.

2)      All the necessary info like: duration, sampling rate and so on. 

3)      How he ran CFinder.  For example, did he just entered the info and let CFinder? Did he do anything else like running other programs when CFinder is running?

4)      Did his program “quicksort” still run after CFinder completed the first run or terminated?

I'm not a big fan of posting my work email on forums, but will share my hotmail account for you to send aarontersteeg@hotmail.com. You might need to change the exe to xex to get by the spam filters. Let me know when the email has been sent and I'll go check it.

 

Cheers,

Aaron



chris.l.elford@intel.com
November 15, 2007 10:03 AM PST
Rate
 
#6 Reply to #1

In looking briefly at CFinder, the biggest problems using it for Java would be

  • The thread number in the concurrency tool is not particularly meaningful for Java developers.  This is because the JVM creates some threads that the Java developer is typically unaware of.
    • There are Java interfaces for querying the "name" and threadgroup of assorted threads.  These may be of value if one wanted to extend this tool to be more meaningful for Java developers.
  • The CFinder tool runs the application twice.  There is no guarantee that threads will be created in the same order on subsequent executions.  This is the same problem with native applications however.
  • Intel's threadchecker and threadprofiler tools do not support Java (that I am aware of).  While this is unfortunate, there are some other options for subsequent analysis.
    • Other tools, such as VTune help identify the most time consuming Java code to help pinpoint pieces of the code where parallel constructs should be used.
    • Other tools, such as the Eclipse TPTP profiler provide threading views customized for Java that help identify the most critical locks and interactions between threads.
    • These together should be used to identify opportunities for additional thread parallelism.  In addition, if the tools identify some core hotspots in your applications hashmaps, queues, etc, one should consider porting their java application to use java/util/concurrent parallelized versions.  These are an approximate Java analogue to the ThreadBuildingBlocks for native Applications.

Other than this, it seems like CFinder would be as helpful for Java developers as for native developers who want to know if their application threads are efficient and whether their applications are written to achieve best performance on multicore and multiprocessor platforms.



chris.l.elford@intel.com
November 15, 2007 10:22 AM PST
Rate
 
#7 Reply to #6

I've tried to use CFinder on some simple applications and have run into a few anomolies/annoyances.

  1. All the "real" apps that I've tried to run end up w/ %time, min, avg as zero (but a valid max time) and no concurrency information
    • CFinder with app of IExplore.exe and parameter of http://google.com
    • CFinder with app of notepad and pasting bunches of stuff for 20sec
      • admittedly this only has a single thread...
    • CFinder with an app of java and a "hello world" application parameter
    • I cannot help but think I have something installed wrong?  It could be that I have an incompatible version of the PDH library installed on my system?  I assume that PDH is being used to get the windows system monitor details...
  2. annoyance...  It would be nice to be able to type in (or paste) the application to run instead of having to browse for it.
  3. annoyance...  I'm still not 100% sure I understand why the application needs to run twice.  For some apps (particularly short running ones), the second run is sometimes less interesting than the first run because of assorted cache behavior changes that may occur the second time around...
    • For example when running with IExplore and google.com, the first time (today) took about 20secs while the second time only took about 10-15secs...  [browsers tend to have some heuristics to decide how often they need to update their caches, etc]...

Thx, Chris



Aaron Tersteeg (Intel)
Total Points:
15,561
Status Points:
15,561
Community Manager
November 19, 2007 11:11 AM PST
Rate
 
#8 Reply to #7

Thank you very much for posting.  We are very glad that you are take time and trying CFinder.  We are collecting feedback for future CFinder release.   Here are a few thoughts on your specific comments.

 

1)      We value your concern about Java.  Currently CFinder is not meant for Java.  If we collect enough requests for Java, we will see how best to add Java support to future release of CFinder.

 

2)      CFinder has been tested  on many applications including multimedia and gaming applications. 

 

3)      I will take your recommendation about the ability to type in or paste in the path.  We will add this to the list of future features for the next CFinder release.

 

4)      Cfinder needs to run the app twice.  In the first run, Cfinder will obtain the maximum number of threads generated by the app since there is no way to know ahead of time how many threads are created by the app.  Threads can be dynamically created and destroyed during the run.  CFinder will actually collect the data in the second run.

 

Again, thank you very much for providing valuable feedback.  I know just like all of us, we are very busy, but you still take your valuable time from your busy schedule testing CFinder and providing feedback.  Future CFinder will get better due to valuable feedbacks as yours.



Aaron Tersteeg (Intel)
Total Points:
15,561
Status Points:
15,561
Community Manager
November 20, 2007 4:21 PM PST
Rate
 
#9 Reply to #8
Additional feedback on CFinder has been provide by Kevin Farnham on the O’Reilly Media, Inc. web site.

Here is the conclusion, check out the post for the full detail of his thoughts.

Trial Run for the CFinder Concurrency Analysis Tool

CFinder is a nice little free tool for quickly analyzing the degree to which a Windows program executes concurrently in a specific run (or set of runs). It’s a clear step up from the simple timing of execution instances that I applied for years to test the effect of edits to my multithreaded applications. I think I’ll keep it!




hax666
December 6, 2007 1:48 AM PST
Rate
 
#10
I'm unable to run this tool on any application.
I've got "-1073738824" "Add counter failed" MessageBox, then "Error" "Cannot get elapsed time!!!".

Here is output from command-line utility:

======== cut ========
CFinder 1.0

---- System Detection ----
Total Sockets: 1
Total Cores: 2
Total Logicals: 2
Multi-processor: No
Multi-core: Yes
Hyper Threading: Not capable
Computername: HAX
System information:
  OEM ID: 0
  Processor Architecture:Native x86 (Intel)
  Processor Level: 6
  Processor type: 586
  Page size: 4096
Hardware Profile:
  DockInfo: 7
  Profile Guid: {4f21c240-1f78-11da-aba1-806d6172696f}
  Friendly Name: Profile 1
CPU Frequency (MHz): 2395
size 46

---- Application Detection ----
Application Name:D:Gamescrayoncrayon.exe
Application Parameters:
Sampling interval (msec):100
CPU Utilization (percentage)
                  Min: Avg: Max:
Number of Threads:
                  Min:   Avg:   Max:
Elapsed Time (ms):
Number of Samples:        0

Press Enter key to exit...
======== cut ========


How can I solve this?

Note:
1) I have downloaded version 1.1 from Intel site. Command line utility shows "CFinder 1.0", and "Product version" in executable resources is 1.0 too.

2) archive contains files "0_WARNING.HTM" and "1_WARNING.HTM", which should not be there.

3) there is no description for "Manual capture" option in manual.


Aaron Tersteeg (Intel)
Total Points:
15,561
Status Points:
15,561
Community Manager
December 6, 2007 10:18 AM PST
Rate
 
#11 Reply to #10
hax666,
I'll talk to Khang about your issue and get back to you shortly.
Thank you for posting your feedback.

Aaron


dicky2868
December 16, 2007 10:22 AM PST
Rate
 
#12 Reply to #11
thank you for your info,thank you for your post


jmuffat
Total Points:
175
Status Points:
125
Green Belt
February 4, 2008 9:37 AM PST
Rate
 
#13
I like the idea of the tool, it looks like it could participate in routine automatic testing and that's always nice to have.

It doesn't run with my app, complaining about not being able to find a thread count, something quite similar to one of the messages above.

You can download a version of my app at www.gpuviewer.com, if you want to check this out for yourself.




anujmehta
February 27, 2008 4:00 AM PST
Rate
 
#14 Reply to #13
Hi

I am newbie in TBB and CFinder. I was trying to test sub_string_finder_pretty (which i downloaded from TBB website, it is one of Getting Started program) but i am getting following error while executing it with CFinder

"Get Max Thread Error"
"Cannot get total number of threads"

Is there any work around for this??

Cheers!!
Anuj

postaquestion
April 15, 2008 10:37 AM PDT
Rate
 
#15

I can't get it to work. After selecting the path to the executable and pressing START, I see "-1073738824" "Add counter failed" MessageBox, then "Error" "Cannot get elapsed time!!!"  Even at the program, which operates at 100%, such as a notepad.

Please help.

 



jygarneau
June 2, 2008 9:18 AM PDT
Rate
 
#16 Reply to #11

I have the same problem! Do you have found the problem?

Thank You.



ronaldo30
Total Points:
60
Registered User
August 26, 2008 3:52 AM PDT
Rate
 
#17 Reply to #15
PostAQuestion:

I can't get it to work. After selecting the path to the executable and pressing START, I see "-1073738824" "Add counter failed" MessageBox, then "Error" "Cannot get elapsed time!!!"  Even at the program, which operates at 100%, such as a notepad.

Please help.

 



And I get the same error
There is something resolved, some patch?

Thanks!




Intel Software Network Forums Statistics

8474 users have contributed to 31606 threads and 100656 posts to date.
In the past 24 hours, we have 30 new thread(s) 109 new posts(s), and 163 new user(s).

In the past 3 days, the most popular thread for everyone has been gemm(A,A,A) like possible? The most posts were made to gemm(A,A,A) like possible? The post with the most views is Dear Steve, excuse me for a d

Please welcome our newest member Kevin Johnson