GithubHelp home page GithubHelp logo

ow2-proactive / scheduling Goto Github PK

View Code? Open in Web Editor NEW
61.0 18.0 53.0 127.97 MB

Multi-platform Scheduling and Workflows Engine

Home Page: http://www.activeeon.com/workflows-scheduling

License: GNU Affero General Public License v3.0

Java 96.82% HTML 0.18% Python 0.01% Shell 0.42% CSS 0.16% JavaScript 2.10% Groovy 0.24% Ruby 0.01% XSLT 0.03% C++ 0.01% Batchfile 0.03%
scheduler java orchestration-framework distributed-computing resource-manager proactive proactive-workflows scheduling activeeon

scheduling's Introduction

ProActive Workflows & Scheduling

Build Status

You can download binaries and access a trial platform for free at:

http://activeeon.com/register/web-download

Quick start

To run ProActive Scheduler (server part):

$> ./bin/proactive-server

This will start all components, including 4 local nodes and Web portals. URLs to access them will be displayed in the server's output.

From here you can submit a job to the Scheduler, using for instance the XML files in samples/proactive-examples.

To run the command line client:

$> ./bin/proactive-client

To start a node:

$> ./bin/proactive-node -r SCHEDULER_URL

Building from sources

You can build a distribution that contains all binaries with ./gradlew build (linux/mac) or gradlew build (windows).

This will produce the following archives:

build/distributions/
├── scheduling-XXXXX-SNAPSHOT.tar
└── scheduling-XXXXX-SNAPSHOT.zip

Documentation

http://doc.activeeon.com

Enjoy ProActive Workflows & Scheduling!

scheduling's People

Contributors

aminelouati avatar amouhoub avatar brianamedro avatar cdiop avatar chloegugli avatar fviale avatar jrochas avatar laurianed avatar lpellegr avatar maelaudren avatar marcocast avatar mauriciojost avatar mbenguig avatar mboussaa avatar mebubo avatar mklkun avatar mykhailenko avatar nebilbenmabrouk avatar oanabiancaschiopu avatar paraita avatar sandrinebeauche avatar shatalovyaroslav avatar slonenokgobo avatar smirnoveeon avatar sophiesongge avatar tobwiens avatar vinseon avatar yinan-liu avatar youribonnaffe avatar zeineb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scheduling's Issues

Insfrastructure Manger - node verifying scripts

Original issue created by Germain SIGETY on 22, Oct 2007 at 13:46 PM – SCHEDULING-36


The Infrastruture Manager doesn’t memorize results for nodes who have answered “no” to the verifying scripts. Each node have a hash map to save results of verifying scripts. After a verification by a script, the result is put in this hashmap. If the node haven’t succed the verifying test (by the script), on a second test, the Hashmap is still empty.

Client behavior on job selection is incoherent

Original issue created by Clement Mathieu on 17, May 2008 at 16:20 PM – SCHEDULING-27


I have 2 jobs running. The first one is selected and I choose to display its tasks. Then I select the second job. tasks view remains enabled. Then I select the first one again. The view is now the job output.

This behavior is incoherent. If the user selected a view, this view should not be changed when a new job is selected.

org.objectweb.proactive.extensions.scheduler.policy.PolicyInterface should be refactored

Original issue created by Fabien Viale on 10, Jan 2008 at 11:41 AM – SCHEDULING-10


The PolicyInterface should be in the PublicAPI because it’s meant to be user-defined,

It contains references to JobDescriptor and EligibleJobDescriptor classes which contain themselves references to many Internal Scheduler Classes (InternalJob, InternalTask, …).

Theses classes should be refactored for a more transparent usage.

Security mechanism decouples active object creation from instantiation

Original issue created by Mario Leyton on 06, Nov 2007 at 09:39 AM – SCHEDULING-18


In Proactive the thread that instantiates an active object is not the same as the thread that will serve requests.

Since the scheduler security mechanism is based on threads, UserSchedulerInterface references can not be created inside the active object’s constructor. Instead, programmers have to pass a SchedulerAuthenticationInterface to the constructor, and then implement the initActivity method where the UserSchedulerInterface reference can be created.

The result of this workaround is that scheduler connection exceptions are not detected during the construction of the active object, and can not be communicated from inside the initActivity method, because this method does not throw exceptions.

Scheduler client JVM crashes when submitting incorrect XML file

Original issue created by Fabrice Huet on 08, Feb 2008 at 13:10 PM – SCHEDULING-24


When submitting an incorrect XML file to the scheduler (e.g having 2 different tasks with the same name), an error is reported but the scheduler crashes.

ERROR:“Xmen-Task” is used as an ID value more than once. at line 98, column 1
1 mistakes.
*\\* glibc detected \* /home/fhuet/NOSAVE/Test_Giovanni/Scheduler/Scheduler: double free or corruption (!prev): 0×0000000000534ca0 \* === Backtrace: === /lib64/libc.so.6(link: 0x3447070412) /home/fhuet/NOSAVE/Test_Giovanni/Scheduler/Scheduler(realpath+0x3c2)(link: 0x4018ea) /lib64/libc.so.6(__libc_start_main+0xf4)(link: 0x344701dab4) /home/fhuet/NOSAVE/Test_Giovanni/Scheduler/Scheduler(strcat+0x42)(link: 0x40157a) === Memory map: ==

Bad handling of broken job XML file: Exception thrown on stdout

Original issue created by Clement Mathieu on 17, May 2008 at 15:29 PM – SCHEDULING-26


If a job does not define at least one previous result, then an exception is thrown on stdout and the job is rejected. Users MUST be warned that their XML file is not valid (with a clear explanation if possible)


schubby$ Job : job_denoise
Job description = Run Junit Tests with a random JDK
name = junit
desc = Plop
final = false
reRun = 1
org.objectweb.proactive.extensions.scheduler.common.exception.SchedulerException: You must specify at least on precious result in your job !
at org.objectweb.proactive.extensions.scheduler.job.InternalJobFactory.createJob(InternalJobFactory.java:160)
at org.objectweb.proactive.extensions.scheduler.job.InternalJobFactory.createJob(InternalJobFactory.java:79)
at org.objectweb.proactive.extensions.scheduler.core.SchedulerFrontend.submit(SchedulerFrontend.java:232)
at sun.reflect.GeneratedMethodAccessor296.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.objectweb.proactive.core.mop.MethodCall.execute(MethodCall.java:388)
at org.objectweb.proactive.core.body.request.RequestImpl.serveInternal(RequestImpl.java:237)
at org.objectweb.proactive.core.body.request.RequestImpl.serve(RequestImpl.java:181)
at org.objectweb.proactive.core.body.BodyImpl$ActiveLocalBodyStrategy.serveInternal(BodyImpl.java:496)
at org.objectweb.proactive.core.body.BodyImpl$ActiveLocalBodyStrategy.serve(BodyImpl.java:465)
at org.objectweb.proactive.core.body.AbstractBody.serve(AbstractBody.java:938)
at org.objectweb.proactive.Service.blockingServeOldest(Service.java:194)
at org.objectweb.proactive.Service.blockingServeOldest(Service.java:169)
at org.objectweb.proactive.Service.fifoServing(Service.java:145)
at org.objectweb.proactive.core.body.ActiveBody$FIFORunActive.runActivity(ActiveBody.java:289)
at org.objectweb.proactive.core.body.ActiveBody.run(ActiveBody.java:174)
at java.lang.Thread.run(Thread.java:619)

Selection scripts: "selected" variable

Original issue created by Clement Mathieu on 17, May 2008 at 16:26 PM – SCHEDULING-3


About selection script the documentation says:
“selection script The selection script is always executed before the task itself on any candidate node: the execution of a selection script must set the boolean variable selected, that indicates if the candidate node is suitable for the execution of the associated task.”

But the example included within the scheduler source code, does not declare or set a such variable.

Anyway the documentation should include some selection scripts examples and templates. I’m not able to understand how to write a selection script in Java, JS or python.

Resource Manager Product interface freezes when adding a non-vaid node

Original issue created by Salageanu Emil on 28, May 2008 at 13:26 PM – SCHEDULING-49


On the RM Product interface: I add a valid node “Node” to the rm. The “Node” is located on a win xp machine (and has been started with “startNode.bat” on that machine).
I remove the node from the rm interface (which kills the node on the remote machine).
then, on the rm interface I add again the node “Node” Normally, the rm should tell me the node is not reachable, instead, the RM Interface freezes for a long time (several minutes) before reaching a stable state again. this problem seems to come from the rm itself (and not from the interface) because if I kill the interface and start it again, it will still take severeal minutes to conect to the rm.

Exceptions from a non-final task are returned to the user inside a TaskResult object

Original issue created by Mario Leyton on 24, Oct 2007 at 10:31 AM – SCHEDULING-23


If an exception takes place inside a non-final task, and the workflow is configured to stop when an exception takes place. Then this exception is placed into a TaskResult object inside the JobResult.

The problem is that the programmer is not expectingt TaskResult from a non-final task. Instead it should be possible to do something like:

boolean JobResult.hasUnexpectedExceptions();
Collection JobResult.getUnexpectedExceptions();

nameclash between a scheduler Job and proactive.Job

Original issue created by Mario Leyton on 24, Oct 2007 at 10:44 AM – SCHEDULING-11


I suggest renaming the class Job to JobScheduler or something, since Job has a name clash with org.objectweb.proactive.Job; which can be confusing for ProActive beginners. Furthermore, the eclipse automatic import tends to import org.objectweb.proactive.job.

Published API

Original issue created by Clement Mathieu on 28, Nov 2007 at 14:06 PM – SCHEDULING-40


For the 3.9 release only classes tagged with the @PublicAPI will be exported to the user (documented).

You have to:
- Add missing annotations (or remove)
- check the API is consistent and well designed
- check that each method/class is documented

Javadoc can be generated with ./build javadoc (html files are in ../docs/api) or will be available soon in hudson https://galpage-exp.inria.fr:8181/hudson/job/ProActive_Documentation/lastSuccessfulBuild/artifact/trunk/docs/api/

Scheduler documentation improvements

Original issue created by Clement Mathieu on 17, May 2008 at 17:04 PM – SCHEDULING-9


Actually it’s really hard to find the information that you need (example: Users don’t care about communicator.sh or ressource manager) Documentation must be task focused. Users know what they want to do and have to learn how to do it.

Currently both user and admin documentation are mixed in chapter 27.

The first step is to have two separate manuals. One for users, one for administrators.

User manual should be fully rewritten. Information is spread all over the chapter with multiple indirections. When I want to write a job descriptor, I don’t want to read API documentation. You can add three sub chapter. Introduction to job and tasks, job descriptors, job API. You must add standalone self contained examples for each common use case. NEVER split an XML file or source code in several boxes. It’s unreadable. Explain quickly how it works, give an example then comment it. MATLAB for scheduler documentation is far better than scheduler documentation.

f you have extra time, then write specification for power users. But most of the time they will send an email on the mailing list for advanced uses.

To help you to understand what a good documentation is, you should try to use an unknown application. Lets say hadoop or glusterf. Both have a really good documentation.

Some advises:
- Users are not fluent with the technologies you use: ""The ProActive scheduler supports portable scripts execution through the JSR 223 Java Scripting capabilities; scripts can be written in any language supported by the underlying Java Runtime Environment". You have to provide a pointer on languages supported by JSR223 or enumerate them.
- Explain why a feature is available with an use case: “pre-script The pre-script is always executed on the node that has been selected by the resource manager before the execution of the task itself.” Ok but I can’t see how pre-scripts can help me…
- Don’t assume that someone will read the documentation sequentially. Documentations are boring and users are lazy: “Create a java task is not much more difficult” So to create a java task I have to learn how to create a native task.

Job XM Descriptor should be typesafe with variable checks

Original issue created by Clement Mathieu on 17, May 2008 at 15:52 PM – SCHEDULING-17


Scheduler and GCM deployment mainly use the same code for variable handling. But they don’t share the code base.
Since the Scheduler code was forked, we did a lot of improvements. Our descriptor are now typesafe and variable definition is checked.

For example if an user define the WORK variable, but use ${WORk} somewhere else a clear error message is printed and the execution stops.
We should share the same library to resolve variables or, at least, you have to merge our changes into the scheduler.

Exclusive access to a compute node

Original issue created by Clement Mathieu on 17, May 2008 at 16:38 PM – SCHEDULING-6


I have bunch of identical jobs to schedule. But my job use a runtime that can be started once and only once per machine. How to write a selection script for my use case ? With JSR223, I’m on top of a JVM so I cannot check for already existing processes.

How do you manage native parallel applications ? My application use as many processors as declared by the operating system and use a lot of memory. Can my job asks for a dedicated machine ?

Job removed from Scheduler after getting the job result. Add a timeout for a job.

Original issue created by Salageanu Emil on 27, May 2008 at 10:52 AM – SCHEDULING-15


I have an application that creates a job and submits it to the scheduler. I can see ob the scheduler interface the job running. When the job finishes my application needs to get the result in order to perform some post-treatment. the scheduler will removed the finished job from the database because the result have been retreived by the application. In my case, I would really want to see my job in the Finished – Jobs widget. Would it be possible to add a timeout variable for a job wich would define how long this job will remain in the scheduler after it was finished and its result retreived (i.e. timeout = 1 week) ? For not changing the current behaviour of the scheduler, the default timeout could be 0.

Job Descriptor Schema not referenced

Original issue created by Fabien Viale on 23, Oct 2007 at 14:49 PM – SCHEDULING-28


The Job descriptor schema is not referenced by current job examples descriptors.

By extension, the descriptors are not validated against the schema when a job is submitted.

Finally, the schema seems non-consistent with the current descriptors format.

The Schema location should follow the same principle as ProActive :
1) descriptors reference an online version of the schema
2) JobFactory validates the given descriptor against an internal Schema (in src/Extra/o.o.p/scheduler/common/schemas for example).

Last submited job not known for a user

Original issue created by Salageanu Emil on 28, Apr 2008 at 15:57 PM – SCHEDULING-7


I submit a job to the scheduler without using the GUI (I connect to the scheduler and submit a job in my program). In the Scheduler GUI, in the Users tab, i don’t see the last submited job for my user.

Canceled state is misleading

Original issue created by Clement Mathieu on 17, May 2008 at 15:47 PM – SCHEDULING-44


When a job cannot be started due to invalid job descriptor (wrong path for instance), the job is put in the finished queue in ‘canceled’ state.

According to me, canceled means that the job have been canceled by the user (or administrator). My job is clearly in an error state since it has not been able to start.

Example:
(link: junit@00:37:44) java.io.IOException: Cannot run program “${WORK_DIR}/junitBatch.sh”: java.io.IOException: error=2, No such file or directory

JobLauncher.sh takes password as parameter

Original issue created by Clement Mathieu on 17, May 2008 at 15:39 PM – SCHEDULING-30


jobLauncher.sh takes username and password as parameter. passwords must NEVER be put on a command line since it is a world readable information.

password must be asked with echo turned off (google keywords: bash password stty)

Complete/Improve Java documentation for your part.

Original issue created by Jean-Luc Scheefer on 02, Jul 2008 at 15:18 PM – SCHEDULING-47


Think about completing or improving the java documentation in the scheduler.ext package. that includes :
- masterWorker
- matlab
- scilab

Eclipse can help you to find the errors/problems in the documentation.
See Windows>preference>java>compiler>javadoc >> check everything and enjoy ;).

Precious result incorrectly handled

Original issue created by Clement Mathieu on 17, May 2008 at 15:32 PM – SCHEDULING-32


A job with no precious result is rejected by the scheduler but it is possible to write a such document (with validation turned on) and documentation does not mention a such limitation.

“precious result is the way to define that a result of a task is important or not. For example, in a job result, you could have to retrieve only some task results that are important for you. By setting the precious result to true you’ll be able to retrieve easily these results. (default is false)”

Scheduler or (XSD and documentation) must be fixed

Resource Manager can't handle more than 500 nodes

Original issue created by Elton Mathias on 13, Jun 2008 at 13:38 PM – SCHEDULING-12


I think it’s a pretty critical issue the fact that the Resource manager can’t handle more than 500 nodes. At the same time I believe it’s not simple to change it for the release 4.0, because it’s something on the PA core and that may require some work … The error:

```

  • Mapping VirtualNode Workers with Node: rmi://grid179.lal.in2p3.fr:1099/Workers318294075 done
    ```

(link: RMCORE) New node added, node ID is : rmi://grid95.lal.in2p3.fr:1099/Workers2105358747, node Source : Default
(link: Default) new node available : rmi://grid179.lal.in2p3.fr:1099/Workers318294075
*\\* Mapping VirtualNode Workers with Node: rmi://grid163.lal.in2p3.fr:1099/Workers980096541 done
(link: RMCORE) New node added, node ID is : rmi://grid179.lal.in2p3.fr:1099/Workers318294075, node Source : Default
Lookup of rmi://grid146.lal.in2p3.fr:1099/PA_JVM1529979507 succeed
(link: Default) new node available : rmi://grid163.lal.in2p3.fr:1099/Workers980096541
\* Mapping VirtualNode Workers with Node: rmi://grid78.lal.in2p3.fr:1099/Workers175105317 done
Lookup of rmi://grid254.lal.in2p3.fr:1099/PA_JVM283084253 succeed
\* Mapping VirtualNode Workers with Node: rmi://grid230.lal.in2p3.fr:1099/Workers579128335 done
Unable to create nodes on rmi://grid155.lal.in2p3.fr:1099/PA_JVM687477054
org.objectweb.proactive.core.ProActiveException: java.rmi.ConnectIOException: Exception creating connection to: 134.158.73.51; nested exception is:
java.net.SocketException: Too many open files
at org.objectweb.proactive.core.remoteobject.RemoteObjectAdapter.getURI(RemoteObjectAdapter.java:618)
at org.objectweb.proactive.core.remoteobject.RemoteObjectAdapter.(RemoteObjectAdapter.java:149)
at org.objectweb.proactive.core.remoteobject.rmi.RmiRemoteObjectFactory.lookup(RmiRemoteObjectFactory.java:211)
at org.objectweb.proactive.core.remoteobject.RemoteObjectHelper.lookup(RemoteObjectHelper.java:178)
at org.objectweb.proactive.core.runtime.RuntimeFactory.getRuntime(RuntimeFactory.java:195)
at org.objectweb.proactive.core.descriptor.data.VirtualNodeImpl.createNodes(VirtualNodeImpl.java:1035)
at org.objectweb.proactive.core.descriptor.data.VirtualNodeImpl.handleNotification(VirtualNodeImpl.java:1007)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor$ListenerWrapper.handleNotification(DefaultMBeanServerInterceptor.java:1732)
at javax.management.NotificationBroadcasterSupport.handleNotification(NotificationBroadcasterSupport.java:257)
at javax.management.NotificationBroadcasterSupport$SendNotifJob.run(NotificationBroadcasterSupport.java:322)
at javax.management.NotificationBroadcasterSupport$1.execute(NotificationBroadcasterSupport.java:307)
at javax.management.NotificationBroadcasterSupport.sendNotification(NotificationBroadcasterSupport.java:229)
at org.objectweb.proactive.core.jmx.mbean.ProActiveRuntimeWrapper.sendNotification(ProActiveRuntimeWrapper.java:133)
at org.objectweb.proactive.core.runtime.ProActiveRuntimeImpl.register(ProActiveRuntimeImpl.java:605)
at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.objectweb.proactive.core.mop.MethodCall.execute(MethodCall.java:384)
at org.objectweb.proactive.core.remoteobject.RemoteObjectImpl.receiveMessage(RemoteObjectImpl.java:99)
at org.objectweb.proactive.core.remoteobject.InternalRemoteRemoteObjectImpl.receiveMessage(InternalRemoteRemoteObjectImpl.java:144)
at org.objectweb.proactive.core.remoteobject.rmi.RmiRemoteObjectImpl.receiveMessage(RmiRemoteObjectImpl.java:70)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.rmi.ConnectIOException: Exception creating connection to: 134.158.73.51; nested exception is:
java.net.SocketException: Too many open files
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:614)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
at org.objectweb.proactive.core.remoteobject.rmi.RmiRemoteObjectImpl_Stub.receiveMessage(Unknown Source)
at org.objectweb.proactive.core.remoteobject.RemoteObjectAdapter.getURI(RemoteObjectAdapter.java:614)
… 33 more
Caused by: java.net.SocketException: Too many open files
at java.net.Socket.createImpl(Socket.java:387)
at java.net.Socket.(Socket.java:361)
at java.net.Socket.(Socket.java:179)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
… 38 more

Real time job output

Original issue created by Clement Mathieu on 17, May 2008 at 16:10 PM – SCHEDULING-21


It is not possible to get the output of a job in real time (heavy buffering ?). I had to wait the end of my job to get the output. When you run a long job for the first time, real time output is mandatory. You don’t want to wait 2h to see that something gone wrong after 10 secondes

Automatic scatter of results mechanism

Original issue created by Fabien Viale on 22, Oct 2007 at 19:07 PM – SCHEDULING-8


It would be nice to have a mechanism that can scatter an array of results of one task into each child input.

The scatter/split task will be given the number of children as an extra input, and will return an array of objects.

The scatter mechanism will give to each child its corresponding input.

The size of the array will be checked at runtime to see if it matchs the number of children, otherwise an Exception will be thrown to each individual child.

The EvenListener mechanism is hardcoded around method names

Original issue created by Mario Leyton on 25, Oct 2007 at 18:43 PM – SCHEDULING-13


The EvenListener mechanism is hardcoded around method names. To be able to listen on an event, the programmer must:
1. Decide which events to listen to
2. Implement the corresponding methods
3. Check the mapping between method name → event enumeration
4. Add event listener instance for each enumeration.

The problem with this approach is that it is error prone, manually converting from method names to enumerations. And, that if the method names change, then java compiler will not detect this errors.

I suggest implementing one interface per event or group of events, and then annotating the methods for which you are really interested. Thus eliminating step 3, 4.
The drawback would be that a class is hardcoded (ie will always listen for the annotated methods).

Implementing a mechanism to cache Matlab/Scilab engine access inside Scheduler Nodes

Original issue created by Fabien Viale on 13, Dec 2007 at 13:18 PM – SCHEDULING-45


When launching Matlab or Scilab jobs in the scheduler, the current implementation starts a new JVM and a new Matlab engine for each new Matlab or Scilab task.

It would be nice to reduce this huge overhead by keeping a connection to the Scilab/Matlab engine between tasks execution.

In this approach, a leasing system or something equivalent is also needed to avoid using resources for ever.

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.