Database System Concepts
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
Bartleby Related Questions Icon

Related questions

bartleby

Concept explainers

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
Check Mark
Knowledge Booster
Background pattern image
Computer Science
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
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education