Software Archive
Read-only legacy content
17061 Discussions

How to model concurrency?

patlecat
Beginner
592 Views
Hi ya all :)

I just recently bought iParallelStudio and would love to redesign an old application for multicore processing. I'm using Enterprise-Architect to model UML stuff. But I'm wondering how to model for parallelism and for the use of iTBB?

How do you guys do it?
0 Kudos
7 Replies
KitturGanesh
Employee
592 Views
Hi,
Thanks for your interest and forthe purchase of the Parallel Studio package, we appreciate much.

The best way to implement parallelism and analyze the application for performance and multi-core utilization is to use the Parallel Amplifier/Inspector to identify code regions which can benefit from parallelism (threading). You will have to implement those code regions with different threading models (like OpenMP, TBB etc) and use Amplifier to analyze what works best for your application.

It is bestto start with the Getting Started guide with Parallel Composer/Amplifier/Inspector to quickly learnthe usage for compilation & performance analysis etc. For example, the Amplfier documentation can be found under the installed directory (default: C:Program FIlesIntelParallel StudioAmplifierdocumentationen
Likewise, you can find documentation for the other components. A quick sample application analysis in the documentation gives you an idea on how to locate, and optimize code regions for parallelism/performance.

For concurrency analysis that you're interested, you can run the Concurrency analysis in Amplifier, to understand whether your application effectively utilizes all available cores and identify the code regions further to parallelize.

After going over the Parallel Studio documentation, if you still have questions or need further clarification please do do in this forum, appreciate much.

-regards,
Kittur



0 Kudos
jimdempseyatthecove
Honored Contributor III
592 Views

I might add the any tool Amplifier/Inspector/Vtune is generally good at identifying hot spots in an application. Some applications though, distribute work evenly throughout the application. These applications will not show hot spots. For these types of applications a thorough understanding of the data and how it flows through the application will provide the insight necessaryto produce good parallel code. Know your code.

Jim Dempsey
0 Kudos
KitturGanesh
Employee
592 Views

Good suggestion Jim, as always. Yes, along with the tools and application knowledge (best to consult with the app design architect) would be ideal in analyzing the application for deciding on the proper code regions to go after for implementing parallelism...
-Cheers.
0 Kudos
patlecat
Beginner
592 Views
Hi,
Thanks for your interest and forthe purchase of the Parallel Studio package, we appreciate much.

The best way to implement parallelism and analyze the application for performance and multi-core utilization is to use the Parallel Amplifier/Inspector to identify code regions which can benefit from parallelism (threading). You will have to implement those code regions with different threading models (like OpenMP, TBB etc) and use Amplifier to analyze what works best for your application.

It is bestto start with the Getting Started guide with Parallel Composer/Amplifier/Inspector to quickly learnthe usage for compilation & performance analysis etc. For example, the Amplfier documentation can be found under the installed directory (default: C:Program FIlesIntelParallel StudioAmplifierdocumentationen
Likewise, you can find documentation for the other components. A quick sample application analysis in the documentation gives you an idea on how to locate, and optimize code regions for parallelism/performance.

For concurrency analysis that you're interested, you can run the Concurrency analysis in Amplifier, to understand whether your application effectively utilizes all available cores and identify the code regions further to parallelize.

After going over the Parallel Studio documentation, if you still have questions or need further clarification please do do in this forum, appreciate much.

-regards,
Kittur




That's nice Kittur but not at all what I asked for. Thanks anyway :)
0 Kudos
KitturGanesh
Employee
592 Views
Quoting - patlecat

That's nice Kittur but not at all what I asked for. Thanks anyway :)

Hi,

Want to make sure you get the right info you're looking for (I can also touch base with other peers who also may have more info)I commented based on what you can do so from within the Studio components,like usingAmplifier to analyze for hot-spots, use its concurrency analysis feature to understand the core utilization (shows graphs/ideal values to shoot for etc), which is what I mentioned before. Yes, that approach is analyzing for concurrency and core utilization thereof. Are you referring todifferentmathematical concurrency modeling scenarios per-se?

Appreciate if you could elaborate some more so I am a little clearer also on what is it you're looking for?

thanks much,
Kittur
0 Kudos
patlecat
Beginner
592 Views

Hi,

Want to make sure you get the right info you're looking for (I can also touch base with other peers who also may have more info)I commented based on what you can do so from within the Studio components,like usingAmplifier to analyze for hot-spots, use its concurrency analysis feature to understand the core utilization (shows graphs/ideal values to shoot for etc), which is what I mentioned before. Yes, that approach is analyzing for concurrency and core utilization thereof. Are you referring todifferentmathematical concurrency modeling scenarios per-se?

Appreciate if you could elaborate some more so I am a little clearer also on what is it you're looking for?

thanks much,
Kittur

Hm, I don't really know how to describe it better than I already did. Maybe you are not familiar with the term UML from OMG (http://omg.org/) or the application called Enterprise Architect from Sparx (http://www.sparxsystems.com/)?

So I wanted to know how to make UML-Models of my application and not to know how to use Parallel Studio. I don't know what diagrams to use to design concurrency in UML or if there is another notation better suited (preferably through Enterprise Architect) to do this.
0 Kudos
KitturGanesh
Employee
592 Views

Hi,

I haven't used Enterprise-Architect orwithUML (of course, familiar with booch methods with OOD), and what I responded pertained to running an application and analyzing the concurrency in Amplifier. You're right, if you need more info on actually modeling or design for concurrency in UML through Enterprise Architect, then hopefully someone in the forum community who's familiar with it may respond.

In the meantime, I'll ask other peers of mine if they are familiar with Enterprise Architect/UML, and may respond. And, thanks for your patience through this and for the clarification of course (clearer now!)

-Cheers,
Kittur


0 Kudos
Reply