Search in sources :

Example 1 with MethodImplementation

use of es.bsc.compss.types.implementations.MethodImplementation in project compss by bsc-wdc.

the class ResourceOptimizer method optionalIncrease.

private boolean optionalIncrease(float[] creationRecommendations) {
    PriorityQueue<ValueResourceDescription> pq = new PriorityQueue<>();
    for (int coreId = 0; coreId < creationRecommendations.length; coreId++) {
        if (creationRecommendations[coreId] > 1) {
            List<Implementation> impls = CoreManager.getCoreImplementations(coreId);
            for (Implementation impl : impls) {
                if (impl.getTaskType() == TaskType.SERVICE) {
                    continue;
                }
                MethodResourceDescription constraints = ((MethodImplementation) impl).getRequirements();
                ValueResourceDescription v = new ValueResourceDescription(constraints, creationRecommendations[coreId], false);
                pq.add(v);
            }
        }
    }
    ResourceCreationRequest rcr = requestOneCreation(pq, false);
    return (rcr != null);
}
Also used : MethodImplementation(es.bsc.compss.types.implementations.MethodImplementation) ResourceCreationRequest(es.bsc.compss.types.ResourceCreationRequest) MethodResourceDescription(es.bsc.compss.types.resources.MethodResourceDescription) CloudMethodResourceDescription(es.bsc.compss.types.resources.description.CloudMethodResourceDescription) PriorityQueue(java.util.PriorityQueue) Implementation(es.bsc.compss.types.implementations.Implementation) MethodImplementation(es.bsc.compss.types.implementations.MethodImplementation)

Example 2 with MethodImplementation

use of es.bsc.compss.types.implementations.MethodImplementation in project compss by bsc-wdc.

the class ResourceOptimizer method mandatoryIncrease.

private void mandatoryIncrease(float[] creationRecommendations, List<Integer> requiredVMs) {
    PriorityQueue<ValueResourceDescription> pq = new PriorityQueue<>();
    boolean[] required = new boolean[creationRecommendations.length];
    for (int coreId : requiredVMs) {
        required[coreId] = true;
    }
    for (int coreId = 0; coreId < creationRecommendations.length; coreId++) {
        List<Implementation> impls = CoreManager.getCoreImplementations(coreId);
        for (Implementation impl : impls) {
            if (impl.getTaskType() == TaskType.SERVICE) {
                continue;
            }
            MethodResourceDescription constraints = ((MethodImplementation) impl).getRequirements();
            ValueResourceDescription v = new ValueResourceDescription(constraints, creationRecommendations[coreId], false);
            pq.add(v);
        }
    }
    requestOneCreation(pq, true);
}
Also used : MethodImplementation(es.bsc.compss.types.implementations.MethodImplementation) MethodResourceDescription(es.bsc.compss.types.resources.MethodResourceDescription) CloudMethodResourceDescription(es.bsc.compss.types.resources.description.CloudMethodResourceDescription) PriorityQueue(java.util.PriorityQueue) Implementation(es.bsc.compss.types.implementations.Implementation) MethodImplementation(es.bsc.compss.types.implementations.MethodImplementation)

Example 3 with MethodImplementation

use of es.bsc.compss.types.implementations.MethodImplementation in project compss by bsc-wdc.

the class ResourceSchedulerTest method setUpClass.

@BeforeClass
public static void setUpClass() {
    // Method resource description and its slots
    Processor p = new Processor();
    p.setComputingUnits(4);
    MethodResourceDescription description = new MethodResourceDescription();
    description.addProcessor(p);
    worker = new FakeWorker(description, 4);
    int coreId = CoreManager.registerNewCoreElement("methodA");
    LinkedList<Implementation> impls = new LinkedList<>();
    LinkedList<String> signs = new LinkedList<>();
    Implementation impl = new MethodImplementation("ClassA", "methodA", coreId, 0, new MethodResourceDescription());
    impls.add(impl);
    signs.add("ClassA.methodA");
    impl = new MethodImplementation("ClassB", "methodA", coreId, 1, new MethodResourceDescription());
    impls.add(impl);
    signs.add("ClassB.methodA");
    CoreManager.registerNewImplementations(coreId, impls, signs);
    coreId = CoreManager.registerNewCoreElement("methodB");
    impls = new LinkedList<>();
    signs = new LinkedList<>();
    impl = new MethodImplementation("ClassA", "methodB", coreId, 0, new MethodResourceDescription());
    impls.add(impl);
    signs.add("ClassA.methodB");
    CoreManager.registerNewImplementations(coreId, impls, signs);
}
Also used : MethodImplementation(es.bsc.compss.types.implementations.MethodImplementation) Processor(es.bsc.compss.types.resources.components.Processor) MethodResourceDescription(es.bsc.compss.types.resources.MethodResourceDescription) FakeWorker(es.bsc.compss.types.fake.FakeWorker) Implementation(es.bsc.compss.types.implementations.Implementation) MethodImplementation(es.bsc.compss.types.implementations.MethodImplementation) LinkedList(java.util.LinkedList) BeforeClass(org.junit.BeforeClass)

Example 4 with MethodImplementation

use of es.bsc.compss.types.implementations.MethodImplementation in project compss by bsc-wdc.

the class NIOJob method prepareJob.

public NIOTask prepareJob() {
    AbstractMethodImplementation absMethodImpl = (AbstractMethodImplementation) this.impl;
    // This is a workarround for Python
    if (absMethodImpl.getMethodType().equals(MethodType.METHOD)) {
        MethodImplementation mImpl = (MethodImplementation) absMethodImpl;
        String methodName = mImpl.getAlternativeMethodName();
        if (methodName == null || methodName.isEmpty()) {
            mImpl.setAlternativeMethodName(taskParams.getName());
        }
    }
    boolean hasTarget = taskParams.hasTargetObject();
    boolean hasReturn = taskParams.hasReturnValue();
    LinkedList<NIOParam> params = addParams();
    MethodResourceDescription reqs = absMethodImpl.getRequirements();
    int numParams = params.size();
    if (taskParams.hasReturnValue()) {
        numParams--;
    }
    // Create NIOTask
    NIOTask nt = new NIOTask(LANG, debug, absMethodImpl, hasTarget, hasReturn, params, numParams, reqs, this.slaveWorkersNodeNames, this.taskId, this.taskParams.getId(), this.jobId, this.history, this.transferId);
    return nt;
}
Also used : AbstractMethodImplementation(es.bsc.compss.types.implementations.AbstractMethodImplementation) MethodImplementation(es.bsc.compss.types.implementations.MethodImplementation) AbstractMethodImplementation(es.bsc.compss.types.implementations.AbstractMethodImplementation) NIOTask(es.bsc.compss.nio.NIOTask) MethodResourceDescription(es.bsc.compss.types.resources.MethodResourceDescription) NIOParam(es.bsc.compss.nio.NIOParam)

Example 5 with MethodImplementation

use of es.bsc.compss.types.implementations.MethodImplementation in project compss by bsc-wdc.

the class NIOJob method toString.

@Override
public String toString() {
    MethodImplementation method = (MethodImplementation) this.impl;
    String className = method.getDeclaringClass();
    String methodName = taskParams.getName();
    return "NIOJob JobId" + this.jobId + " for method " + methodName + " at class " + className;
}
Also used : MethodImplementation(es.bsc.compss.types.implementations.MethodImplementation) AbstractMethodImplementation(es.bsc.compss.types.implementations.AbstractMethodImplementation)

Aggregations

MethodImplementation (es.bsc.compss.types.implementations.MethodImplementation)16 Implementation (es.bsc.compss.types.implementations.Implementation)11 MethodResourceDescription (es.bsc.compss.types.resources.MethodResourceDescription)8 Processor (es.bsc.compss.types.resources.components.Processor)4 LinkedList (java.util.LinkedList)4 AbstractMethodImplementation (es.bsc.compss.types.implementations.AbstractMethodImplementation)3 BinaryImplementation (es.bsc.compss.types.implementations.BinaryImplementation)3 DecafImplementation (es.bsc.compss.types.implementations.DecafImplementation)3 MPIImplementation (es.bsc.compss.types.implementations.MPIImplementation)3 OmpSsImplementation (es.bsc.compss.types.implementations.OmpSsImplementation)3 OpenCLImplementation (es.bsc.compss.types.implementations.OpenCLImplementation)3 CloudMethodResourceDescription (es.bsc.compss.types.resources.description.CloudMethodResourceDescription)3 NIOParam (es.bsc.compss.nio.NIOParam)2 DataType (es.bsc.compss.types.annotations.parameter.DataType)2 ServiceImplementation (es.bsc.compss.types.implementations.ServiceImplementation)2 PriorityQueue (java.util.PriorityQueue)2 BeforeClass (org.junit.BeforeClass)2 Test (org.junit.Test)2 NIOTask (es.bsc.compss.nio.NIOTask)1 JobExecutionException (es.bsc.compss.nio.exceptions.JobExecutionException)1