Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Many questions about Threading for Data Sharing

Ratchadaporn_Adulwut
245 Views

1. is Multi-core and Multi-threading used for application on many process at the same time?

2. We use Visual Studio 2003, can we use Multi-core & multi-thread, and how?

3. In our case, we want to use the multi-threading technique for data sharing of a system to connect among computers from many locations through internet access (with fix IP address). Will there be any problem doing so especially through internet? Will it be useful to multi-thread while connecting on the internet?

Thank so much,

A.Ratchadaporn

0 Kudos
2 Replies
TimP
Honored Contributor III
245 Views

1. is Multi-core and Multi-threading used for application on many process at the same time?

2. We use Visual Studio 2003, can we use Multi-core & multi-thread, and how?

3. In our case, we want to use the multi-threading technique for data sharing of a system to connect among computers from many locations through internet access (with fix IP address). Will there be any problem doing so especially through internet? Will it be useful to multi-thread while connecting on the internet?

1. This question looks ambiguous. In order to gain performance by threading when running multiple processes, it often is necessary to set affinities so as to avoid cache fragmentation. This might be accomplished by the KMP_AFFINITY facility of Intel OpenMP libraries.

2. VS2003, as far as I know, has no OpenMP support for VC, as well as no support for 64-bit mode. OpenMP is available with Intel compilers, and Windows threads were already fairly popular, but newer VS versions afford additional useful opportunities to take advantage of threading.

3. As long as the internet access does not become your sole performance bottleneck, multi-threading should be useful.

0 Kudos
Dmitry_Vyukov
Valued Contributor I
245 Views

1. is Multi-core and Multi-threading used for application on many process at the same time?

It's difficult to give sensible answer given such broad statement of a question. Short answer is: yes, it is. Whether it makes sense in your context is another question.

2. We use Visual Studio 2003, can we use Multi-core & multi-thread, and how?

Definitely, yes. The problem is that there are too many options. You can use explicit OS API threading, OpenMP, TBB, Cilk, .NET TPL, OS/.NET thread pools, libraries for agent-oriented programming, etc.

3. In our case, we want to use the multi-threading technique for data sharing of a system to connect among computers from many locations through internet access (with fix IP address). Will there be any problem doing so especially through internet? Will it be useful to multi-thread while connecting on the internet?

Yes, you can use threading to speed up CPU-bound processing (and possibly memory-bound processing), and/or you can use threading to simplify programming model (blocking calls instead of async/nonblocking calls).

I can suggest some basic reading about multi-threading, for example:

http://en.wikipedia.org/wiki/Thread_(computer_science)

http://software.intel.com/en-us/articles/getting-started-with-parallel-programming-for-multi-core


0 Kudos
Reply