Are modern quad-core laptops such as i7-7700 Intel processor , SISD type or SIMD type or MIMD type? [closed] - processor

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 2 years ago.
Improve this question
Logically, if there are four cores in a CPU, then executing four different instructions each with its own data would be ideal. In that case CPU should ideally be MIMD type. But I read that until 2010, most computers were SISD type even with multiple cores on it. Then somewhere I read modern computers are of SIMD type, but its not clear if they are referring to CPU or GPU in that case. Please clarify it for me.

An Intel Core i7 has several cores and is clearly MIMD. Each one of these cores has AVX instructions, so each core can be seen as SIMD since AVX is an extension of the latter where a single operation can handle eight 32-bit floating-point operations or four 64-bit floating-point operations.

Related

Are there any computer viruses that affect gpus? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
Recent developments in gpus (the past few generations) allow them to be programmed. Languages like Cuda, openCL, openACC are specific to this hardware. In addition, certain games allow programming shaders which function in the rendering of images in the graphics pipeline. Just as code intended for a cpu can cause unintended execution resulting a vulnerability, I wonder if a game or other code intended for a gpu can result in a vulnerability.
The benefit a hacker would get from targeting the GPU is "free" computing power without having to deal with the energy cost. The only practical scenario here is crypto-miner viruses, see this article for example. I don't know details on how they operate, but the idea is to use the GPU to mine crypto-currencies in the background, since GPUs are much more efficient than CPUs at this. These viruses will cause substential energy consumption if unnoticed.
Regarding an application running on the GPU causing/using a vulnerability, the use-cases here are rather limited since security-relevant data usually is not processed on GPUs.
At most you could deliberately make the graphics driver crash and this way sabotage other programs from being properly executed.
There already are plenty security mechanisms prohibiting reading other processes' VRAM etc., but there always is some way around.

Parallel computing: from theory to practice [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 5 years ago.
Improve this question
I studied how to optimize algorithms for multiprocessor systems. Now I would understand in main lines how these algorithms can be transformed into code.
I know that exist some libraries MPI based that helps the developement of software portable to different type of systems, but is right the word "portable" that makes me confused: how the program can be authomatically adapted to an arbitrary number of processors at runtime, since this is an option of mpirun? How the software can decide the proper topology (mesh, hypercube, tree, ring, etc)? The programmer can specify the preferred topology through MPI?
you start the application with a fixed number of cores. Thus, you cannot automatically adapted to an arbitrary number of processors at runtime.
You can tune your software to the topology of your cluster. This is really advanced and for sure not portable. It only makes sense if you have a fixed cluster and are striving for the last bit of performance.
Best regards, Georg

Elasticsearch getting http request performance [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 6 years ago.
Improve this question
I have 10 ES Servers each one with 32Cores Cpu, 256G memory and 10Gb NIC. The ES cluster will face about 9000 times request(index or query) per second. Do you think this would be a problem, or any optimization I should do please.
It depends on the index structure, data amount and the queries you're doing. Hardware alone does not guarantee anything. I have seen clusters two times less powerful than yours which were capable to handle 10k/sec. However I can easily imagine queries and aggregations that will take some time to run on your cluster.

top output, relationship between virt and mem% for a process [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
my computer has ubuntu 14 installed. There are a total of 40 CPUs, and 260G memory.
I use top command line to check the status of the processes. I was expecting that for each individual process, the virt value should be approximately equal to 260 * mem%. However, it is not.
Could you anyone help me to figure out why?
Thanks for any input:))
The MEM% column shows the amount of physical memory that is being used by a process. This amount is called the "Resident Set Size" (RSS) and is given in the RES column. The amount of virtual memory on a system is effectively unlimited due to the fact that each process has their own LDT (on x86; other architectures' MMUs have their own equivalents).

Does my network have shared or distributed memory [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
Now I have some code that I would like to parallelize. The easiest thing would be to use openmp which will take advantage of the multiple processors and their cores and their shared memory. I have access to a network that I use for number crunching. I don't know if the memory on it is shared or distributed. How can I find this out? If it is shared then I can easily use openmp and it will work. I do less /proc/cpuinfo and I see that I have 8 processors available on the network. and I do less/proc/meminfo and it tells me I have 32000mega bytes of memory.
If you are using OpenMP you are probably writing your software to your machine only, as it is targeted on making the use of parallel programming transparent to the user. You can use OpenMP on a cluster together with MPI or with some OpenMP extension to make the many computers of the network appear to your OpenMP program like a single one.

Resources