Giter VIP home page Giter VIP logo

walidbosso / java_task_scheduling Goto Github PK

View Code? Open in Web Editor NEW
23.0 2.0 3.0 1.58 MB

☕ 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.

Home Page: https://github.com/walidbosso/Java_Task_Scheduling

License: Apache License 2.0

Java 95.52% C 4.48%
java rmi swing threads c tcp master-slave-architecture multithreading task-scheduler

java_task_scheduling's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.