Write a parallel program using MPI (and not OpeMP) to accomplish the same as the following serial program. For the following serial program the user enters a line and the program outputs the number of occurrences of each printable character (but not the space or tab character). For the parallel program if we have p processes we should divide the line into p segments and let each process counts the characters of its segment #include #include #include #define ASCIIs 127 //ASCII characters from 0 to 127 define atmost 1000 char letters[atmost + 1]; //Extra location for the string terminator '\0' int total_count[ASCIIs]; void find(int count[], int start, int end); int main() {   int i, processes, n, start, end;   int count[ASCIIs], my_rank, segment, p; printf("Enter a line not larger than 1000 characters.\n"); fgets(letters, atmost,stdin); printf("How many segments?: "); scanf("%d", &processes); //To make the length of the divisible by processes: while(strlen(letters) % processes != 0) strcat(letters, " "); n = strlen(letters); for(i = 0; i < ASCIIs; i++) total_count[i] = 0; for(p = 0; p < processes; p++) {   my_rank = p;   segment = n / processes;   start = my_rank * segment;   end = start + segment;   find(count, start, end);   for(i = 0; i <= ASCIIs; i++)   total_count[i] += count[i]; } for(i = 33; i < ASCIIs; i++) if(total_count[i] != 0) printf("Number of %c is: %d\n", i, total_count[i]); return 0; } void find(int count[], int start, int end) { int i; for(i = 0; i < ASCIIs; i++) count[i] = 0; for(i = start; i < end; i++) count[(int)letters[i]]++; } Enable GingerCannot connect to Ginger Check your internet connection or reload the browserDisable in this text fieldRephraseRephrase current sentence2Edit in Ginger×   Please give proper explanation and typed answer only.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Write a parallel program using MPI (and not OpeMP) to accomplish the same as the following serial program. For the following serial program the user enters a line and the program outputs the number of occurrences of each printable character (but not the space or tab character). For the parallel program if we have p processes we should divide the line into p segments and let each process counts the characters of its segment
#include<stdio.h>
#include<stdlib.h>
#include <string.h>

#define ASCIIs 127 //ASCII characters from 0 to 127
define atmost 1000
char letters[atmost + 1]; //Extra location for the string terminator '\0'
int total_count[ASCIIs];
void find(int count[],
int start, int end);
int main()
{
  int i, processes, n, start, end;
  int count[ASCIIs], my_rank, segment, p;
printf("Enter a line not larger than 1000 characters.\n");
fgets(letters, atmost,stdin);
printf("How many segments?: ");
scanf("%d", &processes);
//To make the length of the divisible by processes:
while(strlen(letters) % processes != 0) strcat(letters, " ");
n = strlen(letters);
for(i = 0; i < ASCIIs; i++)
total_count[i] = 0;
for(p = 0; p < processes; p++)
{
  my_rank = p;
  segment = n / processes;
  start = my_rank * segment;
  end = start + segment;
  find(count, start, end);
  for(i = 0; i <= ASCIIs; i++)
  total_count[i] += count[i];
}
for(i = 33; i < ASCIIs; i++)
if(total_count[i] != 0)
printf("Number of %c is: %d\n", i, total_count[i]);
return 0;
}
void find(int count[], int start, int end)
{
int i;
for(i = 0; i < ASCIIs; i++)
count[i] = 0;
for(i = start; i < end; i++)
count[(int)letters[i]]++;
}

Enable GingerCannot connect to Ginger Check your internet connection
or reload the browserDisable in this text fieldRephraseRephrase current sentence2Edit in Ginger×
 
Please give proper explanation and typed answer only.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Fundamentals of Computer System
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education