About Me

My photo
Vijayapur, Karnataka, India
Let us learn together!

Monday, 18 May 2026

AI Prompts to get source code for IDT projects

AI Prompt-1

Design and develop web application that read student roll number, name, USN and Department and store in Browsers memory.

Next contnued AI prompt: Explain about browsers memory storage

AI Prompt-2

Design and develop web application that read student roll number, name, USN and Department and store in Browsers memory.But store the inputs in excel file (if excel file is not there for first time then create it ; if exists, open and add the inputs)

Next contnued AI prompt: for evey click it needs to append with existing data

AI Prompt-3

Design and Develop web application for Calculator (use CSS for good apperance) to perform arithematical calculations.

Next contnued AI prompt: Heading: BLDEA's V. P. Dr. P. G. Halakatti College of Engineering and Technology., Vijayapur-586103. Two Days Workshop on Design and development of Web Applications 18th and 19th May 2026 and animated buttons

Next contnued AI prompt: Heading: BLDEA's V. P. Dr. P. G. Halakatti College of Engineering and Technology., Vijayapur-586103. Two Days Workshop on Design and development of Web Applications 18th and 19th May 2026 and animated buttons

Next contnued AI prompt:give me full code

AI Prompt-4

 I am engineering student. My name is _______________. Please explain me about "Innovative Design Thinking"

AI Prompt-5

Can you design and devlope an web application for "Anti proxy smart attendance system "

Next contnued AI prompt: Give me all files listed in 21. Suggested Folder Structure

-------------------------------------------------------

AI Prompt-6

Design and Dvelop web application for "Anti proxy smart attendance system " for beginner with single html file that includes css content that takes input and stores in excel file in the same folder. Very simple example. so that I can save all files in single folder and run it.

------------------------------------------------------

Next contnued AI prompt: Can you design only one webpage so that esuly i can run it

Next contnued AI prompt: where inputs are stored?

-----------------------------

AI Prompt-7 

Design and develop web bsed application with single html file (minimum number of files)."Lack of online complaint portal for college students "

AI Prompt-8

Design and develop web bsed application with single html file (minimum number of files)."Lack of online complaint portal for college students "

AI Prompt-9

Medicine inventory management .

Link-1: https://chatgpt.com/share/6a0bbc2e-a1f4-8320-8272-386ad45d9af0

Link-2:  https://chatgpt.com/share/6a0bbc13-48f0-8323-80fb-e7c8975b85cb




Monday, 8 September 2025

PARALLEL COMPUTING (BCS702) Program 6: Write a MPI program to demonstration of deadlock using point to point communication and avoidance of deadlock by altering the call sequence

 Department of Computer Science & Engineering, BLDEACET, Vijayapura

13 Lab Manual : PARALLEL COMPUTING (BCS702)

Program 6: Write a MPI program to demonstration of deadlock using point to point communication and avoidance of deadlock by altering the call sequence

Objective: Demonstrate deadlock and its avoidance using MPI.

Part A: Deadlock Example

Code (Deadlock-prone)

// mpi_deadlock.c

#include <stdio.h>

#include <mpi.h>

int main(int argc, char* argv[]) {

int rank, size, data;

MPI_Init(&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD, &rank);

if (rank == 0) {

int msg = 100;

MPI_Recv(&data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);

MPI_Send(&msg, 1, MPI_INT, 1, 0, MPI_COMM_WORLD);

} else if (rank == 1) {

int msg = 200;

MPI_Recv(&data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);

MPI_Send(&msg, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);

}

MPI_Finalize();

return 0;

}


Explanation:

#include <stdio.h>

#include <mpi.h>

int main(int argc, char* argv[]) {

    int rank, size, data;

    MPI_Init(&argc, &argv);                  // Start MPI environment

    MPI_Comm_rank(MPI_COMM_WORLD, &rank);    // Get process rank (0, 1, ...)

....
  • MPI_Init → Initializes MPI.

  • MPI_Comm_rank → Gives each process a unique ID (rank).

    • Example: If you run with 2 processes → one will have rank=0, the other rank=1.

Process 0 (rank = 0)

if (rank == 0) { int msg = 100; MPI_Recv(&data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); MPI_Send(&msg, 1, MPI_INT, 1, 0, MPI_COMM_WORLD); }
  • Creates an integer message msg = 100.

  • First action → MPI_Recv: process 0 waits to receive an integer from process 1.

  • Only after receiving, it will send its own message (100) to process 1.


👀 Process 1 (rank = 1)

else if (rank == 1) { int msg = 200; MPI_Recv(&data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); MPI_Send(&msg, 1, MPI_INT, 0, 0, MPI_COMM_WORLD); }
  • Creates an integer message msg = 200.

  • First action → MPI_Recv: process 1 waits to receive an integer from process 0.

  • Only after receiving, it will send its own message (200) to process 0.


❌ The Problem (Deadlock)

  • Process 0 → waiting for data from Process 1 (via MPI_Recv).

  • Process 1 → waiting for data from Process 0 (via MPI_Recv).

👉 Both are stuck waiting forever.
Since neither sends before receiving, no data is sent, so both processes are blocked.
This situation is called a deadlock.

Conclusion:
Both processes wait for Recv first, which leads to a deadlock as neither can proceed to Send.

Sample Output (Deadlock)
$ mpirun -np 2 ./mpi_deadlock
# Program hangs indefinitely — no output is produced

Part B: Deadlock-Free Version
Code (Avoiding Deadlock by Call Order)
// mpi_no_deadlock.c
#include <stdio.h>
#include <mpi.h>
int main(int argc, char* argv[]) {
int rank, data;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if (rank == 0) {
int msg = 100;
MPI_Send(&msg, 1, MPI_INT, 1, 0, MPI_COMM_WORLD);
MPI_Recv(&data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
printf("Process 0 received %d from Process 1\n", data);
} else if (rank == 1) {
int msg = 200;
MPI_Send(&msg, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);
MPI_Recv(&data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
printf("Process 1 received %d from Process 0\n", data);
}

Explanation:

 Code (Deadlock-Free)

#include <stdio.h> #include <mpi.h> int main(int argc, char* argv[]) { int rank, data; MPI_Init(&argc, &argv); // Step 1: Start MPI environment MPI_Comm_rank(MPI_COMM_WORLD, &rank); // Step 2: Get process rank (0 or 1)
  • MPI_Init → starts MPI.

  • MPI_Comm_rank → gives each process a unique rank (0 or 1 here).


👀 Process 0 (rank = 0)

if (rank == 0) { int msg = 100; MPI_Send(&msg, 1, MPI_INT, 1, 0, MPI_COMM_WORLD); // Step 3: Send first MPI_Recv(&data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); // Step 4: Receive later printf("Process 0 received %d from Process 1\n", data); }
  • Creates message msg = 100.

  • First action → MPI_Send: sends 100 to process 1.

  • Then it waits to receive an integer from process 1.

  • Finally prints:

    Process 0 received 200 from Process 1

👀 Process 1 (rank = 1)

else if (rank == 1) { int msg = 200; MPI_Send(&msg, 1, MPI_INT, 0, 0, MPI_COMM_WORLD); // Step 3: Send first MPI_Recv(&data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); // Step 4: Receive later printf("Process 1 received %d from Process 0\n", data); }
  • Creates message msg = 200.

  • First action → MPI_Send: sends 200 to process 0.

  • Then it waits to receive an integer from process 0.

  • Finally prints:

    Process 1 received 100 from Process 0

✅ Why This Code Does NOT Deadlock

  • In Part A, both processes did MPI_Recv first → they blocked forever.

  • In Part B, both processes do MPI_Send first → message is sent immediately and stored in MPI’s buffer.

  • Then when they call MPI_Recv, the matching message is already available → they succeed.

Thus, no process gets stuck. 🎯


🔑 Key Takeaway

  • Ordering matters in MPI.

  • If you do Recv first on both sides → ❌ deadlock.

  • If you do Send first → ✅ works fine (because MPI buffers the outgoing message until the other side receives it).


Tuesday, 4 March 2025

Design and implement C/C++ Program to sort a given set of n integer elements using Merge Sort method and compute its time complexity. Run the program for varied values of n> 5000, and record the time taken to sort. Plot a graph of the time taken versus n.

 #include <stdio.h>

#include <stdlib.h>

#include <time.h>


// Function to merge two subarrays

void merge(int arr[], int left, int mid, int right) {

    int i, j, k;

    int n1 = mid - left + 1;

    int n2 = right - mid;


    int L[n1], R[n2];


    for (i = 0; i < n1; i++)

        L[i] = arr[left + i];

    for (j = 0; j < n2; j++)

        R[j] = arr[mid + 1 + j];


    i = 0;

    j = 0;

    k = left;

    while (i < n1 && j < n2) {

        if (L[i] <= R[j]) {

            arr[k] = L[i];

            i++;

        } else {

            arr[k] = R[j];

            j++;

        }

        k++;

    }


    while (i < n1) {

        arr[k] = L[i];

        i++;

        k++;

    }


    while (j < n2) {

        arr[k] = R[j];

        j++;

        k++;

    }

}


// Merge Sort function

void mergeSort(int arr[], int left, int right) {

    if (left < right) {

        int mid = left + (right - left) / 2;

        mergeSort(arr, left, mid);

        mergeSort(arr, mid + 1, right);

        merge(arr, left, mid, right);

    }

}


int main() {

    int n;

    printf("Enter number of elements (n > 5000): ");

    scanf("%d", &n);


    if (n <= 5000) {

        printf("Please enter n greater than 5000.\n");

        return 1;

    }


    int *arr = (int *)malloc(n * sizeof(int));

    if (arr == NULL) {

        printf("Memory allocation failed.\n");

        return 1;

    }


    // Generating random numbers

    srand(time(0));

    for (int i = 0; i < n; i++) {

        arr[i] = rand() % 100000; // Random numbers between 0 and 99999

    }


    clock_t start, end;

    double cpu_time_used;


    start = clock();

    mergeSort(arr, 0, n - 1);

    end = clock();


    cpu_time_used = ((double)(end - start)) / CLOCKS_PER_SEC;

    printf("Time taken to sort %d elements: %f seconds\n", n, cpu_time_used);


    free(arr);

    return 0;

}


Tuesday, 23 April 2024

GCD of two numbers and its application...

The greatest common divisor (gcd) of two numbers is the largest positive integer that divides both numbers without leaving a remainder. The gcd can be found using the Euclidean algorithm


GCD is useful in cases when you want different amounts of things to be arranged in the same number of order


For example there are 32 soldiers and 48 bandsman and during the parade you want them to march in the same number of rows


So , you calculate the HCF which is 8 and thus you can make 8 rows each for each group.




Write C++ program to find GCD two numbers a and b using  user defined function. i.e. GCD(a,b) using Euclids algorithm.


 #include <iostream>

using namespace std;

int gcd(int a, int b) {

   if (b == 0)

   return a;

   return gcd(b, a % b);

}

int main() {

   int a , b;

   cout<<"Enter the values of a and b: "<<endl;

   cin>>a>>b;

   cout<<"GCD of "<< a <<" and "<< b <<" is "<< gcd(a, b);

   return 0;

}

Output:

Enter the values of a and b: 

10

20

GCD of 10 and 20 is 10

AI Prompts to get source code for IDT projects

AI Prompt-1 Design and develop web application that read student roll number, name, USN and Department and store in Browsers memory. Next co...