Skip to content

☕ A Distributed Task Scheduling System is a software infrastructure that allows for the distribution and execution of tasks across multiple nodes in a network. It enhances the efficiency and scalability of large-scale computation and data processing tasks by dividing complex tasks into smaller sub-tasks and distributing them.

License

Notifications You must be signed in to change notification settings

walidbosso/Java_Task_Scheduling

Repository files navigation

Java_Task_Scheduling

GitHub WidgetBox


Java Task Scheduling System

Presentation:

  • This project introduces a Java-based Distributed Task Scheduling System for parallel data(Image & Matrix) processing using Threads.
  • Efficient task scheduling optimizes resource allocation and timeframes.

What does my project do exactly:

  • Clients can easily submit various tasks like Filter, Convolution, and Matrix, executed via RMI on the server. All will be executed in parallel.
  • Server and its workers further breaks down tasks to pieces and send them through TCP to slaves, then compiles outcomes when they are ready again, and then sends the result back to the client.
  • Slaves play a pivotal role by executing assigned sub-tasks.

Instructions:

  • Fork & Clone the repository.

  • Install JDK if its not installed yet, when done, go to your system environement variables, Edit Path, and add "C:\Path\To\Your\JDK\bin" at the end of it.

  • Put all 5 config.txt files+ image+ kernel.txt in Desktop

Inside folder "src" open 8 of Git-Bash in each 1 of type these lines:

# Compile Java files
javac Classes/*.java 

# Starts the slaves listening TCP
java Classes.SlaveTask config0.txt
java Classes.SlaveTask config1.txt
java Classes.SlaveTask config2.txt
java Classes.SlaveTask config3.txt

# Open the RMI port
rmiregistry 13190

# Start the server, creates multiple workers which works in parallel
java Classes.TaskSchedulerServer config.txt

# Open the GUI
java Classes.Tasks

Extra

A port open error:

jps #To see all javaprocess along with PID
taskkill /PID 5032 /F #To terminate in case it was needed, 5032 is just an example.

More ressources:

  • In case you didn't want to do this manually and felt lazy, check the folder called Xtra, I included C codes where it can automatize this work, just fix the Path to each C file in each C code, compile each one of them. When you finish, run TaskManagement_Process.exe, this will run all the 8 commands I mentioned above automatically.
  • Now whenever you feel like trying the project again just run TaskManagement_Process.exe, no need to run 8 commands every single time, consider creating a link to the .exe file instead and add an icon.
  • Contact me in LinkedIn for questions.


 
© by Walid BOUSSOU  🇲🇦 😄
 


👏 Thanks for the support

Stargazers

Stargazers repo roster for @walidbosso/Java_Task_Scheduling

Forkers

Forkers repo roster for @walidbosso/Java_Task_Scheduling

Contributors



GitHub last commit (by committer)

GitHub License

𝚂𝚑𝚘𝚠 𝚜𝚘𝚖𝚎 💙 𝚋𝚢 𝚜𝚝𝚊𝚛𝚛𝚒𝚗𝚐 ⭐ 𝚝𝚑𝚎 𝚛𝚎𝚙𝚘𝚜𝚒𝚝𝚘𝚛𝚢!


Back to top

About

☕ A Distributed Task Scheduling System is a software infrastructure that allows for the distribution and execution of tasks across multiple nodes in a network. It enhances the efficiency and scalability of large-scale computation and data processing tasks by dividing complex tasks into smaller sub-tasks and distributing them.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published