You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@airavata.apache.org by SmashRod Alfredo <sm...@hotmail.it> on 2015/04/29 14:39:43 UTC

Register a remote computational resource steps

Hi Everyone,
I need some details on the steps necessary in order to register a remote computational resource on Airavata.

The first question is really dumb but I don't find anywhere a detailed answer or explanation: it is necessary to have an airavata-server instance running on both local (where computational resource is registered) and remote machine?


I've try to register an internal computational resource without success doing the following:
-> Register the computational resources (following the provided samples)
            computeResourceID = registerComputeHost(remoteMachineDomainName, "RTSRV SSC Machine",
                    ResourceJobManagerType.FORK, "push", "/usr/bin", SecurityProtocol.SSH_KEYS, 22, null);
            System.out.println("Resource Id is " + computeResourceID);

-> Register the GatewayResourceProfile

            ComputeResourcePreference rtsrvComputateResourcePreference = RegisterSampleApplicationsUtils.
                    createComputeResourcePreference(computeResourceID , null, false, null,
                            JobSubmissionProtocol.SSH, DataMovementProtocol.SCP, "/tmp");
    
            GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
            gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
            gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
            gatewayResourceProfile.addToComputeResourcePreferences(rtsrvComputateResourcePreference);
 
            String gatewayProfile = airavataClient.registerGatewayResourceProfile(gatewayResourceProfile);
            System.out.println("Gateway Profile is registered with Id " + gatewayProfile);
            writeIdPropertyFile("Gateway Profile ID",gatewayProfile,propertyFile);

-> Register an application deployment of the remote host

When try to execute a workflow using the defined application on the registered remote machine I got the following error:
Computational resource scheduling is not configured for host ......

Does something missing on my remote machine (airavata-server running or some kind of services?), or something is not properly configured on the local machine (some properties file?)?

Thanks for the explanation

Alfredo
 		 	   		  

Re: Register a remote computational resource steps

Posted by Suresh Marru <sm...@apache.org>.
Hi Sudhakar,

Yes a local instance will help. If the local installation setup is delaying even using the hosted instance might get familiarized with the flow. 

Thanks for volunteering for the documentation. I think that will be of great help.

Suresh

> On Apr 30, 2015, at 10:38 AM, Pamidighantam, Sudhakar V <sp...@illinois.edu> wrote:
> 
> Suresh:
> I think we need to have a local deployment of this test PHP interface and instructions to use that instance. 
> I will talk to Eroma about creating these in a document similar to XBAYA-Quick-Start tutorial. 
> 
> This way any body can deploy a  local PHP instance,  register resources and could test the execution. 
> I believe that the test PHP gateway code is already in the git. Could you please verify and comment on this plan.
> 
> Thanks,
> Sudhakar.
> On Apr 30, 2015, at 8:51 AM, Suresh Marru <smarru@apache.org <ma...@apache.org>> wrote:
> 
>> Hi Alfredo,
>> 
>> We will be happy to walk through these steps using a test PHP interface which consumes the same API you are programming against. 
>> 
>> http://dev.test-drive.airavata.org/portal/pga/public/ <http://dev.test-drive.airavata.org/portal/pga/public/>
>> 
>> Navigating through the working PHP code in this repo might help understand the API sequences better.
>> 
>> Suresh
>> 
>>> On Apr 30, 2015, at 9:30 AM, Chathuri Wimalasena <kamalasini@gmail.com <ma...@gmail.com>> wrote:
>>> 
>>> Hi, 
>>> 
>>> You do not need to have airavata server running in remote instance. Only local instance is sufficient. Here are the steps you should do in order to use your application. 
>>> Register the compute resource
>>> Register the gatewayResource preference for the gateway profile 
>>> Register an application module
>>> Register the application interface
>>> Register the application deployment
>>> I assume you went through all the above steps. From each register method of the API, you will get a ID in return. When you create the experiment object, you need to give the application interface id as the "applicationId" and give the compute resource id as the "resourceHostId" of the ComputationalResourceScheduling object. Sample experiment object is like this. 
>>> 
>>> 
>>> Experiment simpleExperiment =
>>>                                     ExperimentModelUtil.createSimpleExperiment(projectID, testUser, "TestFR_Ultrascan_Experiment", "Ultrascan Experiment run", appId, applicationInputs);
>>> simpleExperiment.setExperimentOutputs(appOutputs);
>>> ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(hostId, 4, 1, 1, "normal", 30, 0, 1, null);
>>> UserConfigurationData userConfigurationData = new UserConfigurationData();
>>> userConfigurationData.setAiravataAutoSchedule(false);
>>> userConfigurationData.setOverrideManualScheduledParams(false);
>>> userConfigurationData.setComputationalResourceScheduling(scheduling);
>>> simpleExperiment.setUserConfigurationData(userConfigurationData);
>>> experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
>>> 
>>> Hope this helps.
>>> 
>>> Thanks..
>>> Chathuri
>>> 
>>> 
>>> On Wed, Apr 29, 2015 at 8:39 AM, SmashRod Alfredo <smashrod@hotmail.it <ma...@hotmail.it>> wrote:
>>> Hi Everyone,
>>> I need some details on the steps necessary in order to register a remote computational resource on Airavata.
>>> 
>>> The first question is really dumb but I don't find anywhere a detailed answer or explanation: it is necessary to have an airavata-server instance running on both local (where computational resource is registered) and remote machine?
>>> 
>>> 
>>> I've try to register an internal computational resource without success doing the following:
>>> -> Register the computational resources (following the provided samples)
>>>             computeResourceID = registerComputeHost(remoteMachineDomainName, "RTSRV SSC Machine",
>>>                     ResourceJobManagerType.FORK, "push", "/usr/bin", SecurityProtocol.SSH_KEYS, 22, null);
>>>             System.out.println("Resource Id is " + computeResourceID);
>>> 
>>> -> Register the GatewayResourceProfile
>>> 
>>>             ComputeResourcePreference rtsrvComputateResourcePreference = RegisterSampleApplicationsUtils.
>>>                     createComputeResourcePreference(computeResourceID , null, false, null,
>>>                             JobSubmissionProtocol.SSH, DataMovementProtocol.SCP, "/tmp");
>>>     
>>>             GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
>>>             gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
>>>             gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
>>>             gatewayResourceProfile.addToComputeResourcePreferences(rtsrvComputateResourcePreference);
>>>  
>>>             String gatewayProfile = airavataClient.registerGatewayResourceProfile(gatewayResourceProfile);
>>>             System.out.println("Gateway Profile is registered with Id " + gatewayProfile);
>>>             writeIdPropertyFile("Gateway Profile ID",gatewayProfile,propertyFile);
>>> 
>>> -> Register an application deployment of the remote host
>>> 
>>> When try to execute a workflow using the defined application on the registered remote machine I got the following error:
>>> Computational resource scheduling is not configured for host ......
>>> 
>>> Does something missing on my remote machine (airavata-server running or some kind of services?), or something is not properly configured on the local machine (some properties file?)?
>>> 
>>> Thanks for the explanation
>>> 
>>> Alfredo
>>> 
>> 
> 


Re: Register a remote computational resource steps

Posted by "Pamidighantam, Sudhakar V" <sp...@illinois.edu>.
Suresh:
I think we need to have a local deployment of this test PHP interface and instructions to use that instance. 
I will talk to Eroma about creating these in a document similar to XBAYA-Quick-Start tutorial. 

This way any body can deploy a  local PHP instance,  register resources and could test the execution. 
I believe that the test PHP gateway code is already in the git. Could you please verify and comment on this plan.

Thanks,
Sudhakar.
On Apr 30, 2015, at 8:51 AM, Suresh Marru <sm...@apache.org> wrote:

> Hi Alfredo,
> 
> We will be happy to walk through these steps using a test PHP interface which consumes the same API you are programming against. 
> 
> http://dev.test-drive.airavata.org/portal/pga/public/
> 
> Navigating through the working PHP code in this repo might help understand the API sequences better.
> 
> Suresh
> 
>> On Apr 30, 2015, at 9:30 AM, Chathuri Wimalasena <ka...@gmail.com> wrote:
>> 
>> Hi, 
>> 
>> You do not need to have airavata server running in remote instance. Only local instance is sufficient. Here are the steps you should do in order to use your application. 
>> Register the compute resource
>> Register the gatewayResource preference for the gateway profile 
>> Register an application module
>> Register the application interface
>> Register the application deployment
>> I assume you went through all the above steps. From each register method of the API, you will get a ID in return. When you create the experiment object, you need to give the application interface id as the "applicationId" and give the compute resource id as the "resourceHostId" of the ComputationalResourceScheduling object. Sample experiment object is like this. 
>> 
>> 
>> Experiment simpleExperiment =
>>                                     ExperimentModelUtil.createSimpleExperiment(projectID, testUser, "TestFR_Ultrascan_Experiment", "Ultrascan Experiment run", appId, applicationInputs);
>> simpleExperiment.setExperimentOutputs(appOutputs);
>> ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(hostId, 4, 1, 1, "normal", 30, 0, 1, null);
>> UserConfigurationData userConfigurationData = new UserConfigurationData();
>> userConfigurationData.setAiravataAutoSchedule(false);
>> userConfigurationData.setOverrideManualScheduledParams(false);
>> userConfigurationData.setComputationalResourceScheduling(scheduling);
>> simpleExperiment.setUserConfigurationData(userConfigurationData);
>> experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
>> 
>> Hope this helps.
>> 
>> Thanks..
>> Chathuri
>> 
>> 
>> On Wed, Apr 29, 2015 at 8:39 AM, SmashRod Alfredo <sm...@hotmail.it> wrote:
>> Hi Everyone,
>> I need some details on the steps necessary in order to register a remote computational resource on Airavata.
>> 
>> The first question is really dumb but I don't find anywhere a detailed answer or explanation: it is necessary to have an airavata-server instance running on both local (where computational resource is registered) and remote machine?
>> 
>> 
>> I've try to register an internal computational resource without success doing the following:
>> -> Register the computational resources (following the provided samples)
>>             computeResourceID = registerComputeHost(remoteMachineDomainName, "RTSRV SSC Machine",
>>                     ResourceJobManagerType.FORK, "push", "/usr/bin", SecurityProtocol.SSH_KEYS, 22, null);
>>             System.out.println("Resource Id is " + computeResourceID);
>> 
>> -> Register the GatewayResourceProfile
>> 
>>             ComputeResourcePreference rtsrvComputateResourcePreference = RegisterSampleApplicationsUtils.
>>                     createComputeResourcePreference(computeResourceID , null, false, null,
>>                             JobSubmissionProtocol.SSH, DataMovementProtocol.SCP, "/tmp");
>>     
>>             GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
>>             gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
>>             gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
>>             gatewayResourceProfile.addToComputeResourcePreferences(rtsrvComputateResourcePreference);
>>  
>>             String gatewayProfile = airavataClient.registerGatewayResourceProfile(gatewayResourceProfile);
>>             System.out.println("Gateway Profile is registered with Id " + gatewayProfile);
>>             writeIdPropertyFile("Gateway Profile ID",gatewayProfile,propertyFile);
>> 
>> -> Register an application deployment of the remote host
>> 
>> When try to execute a workflow using the defined application on the registered remote machine I got the following error:
>> Computational resource scheduling is not configured for host ......
>> 
>> Does something missing on my remote machine (airavata-server running or some kind of services?), or something is not properly configured on the local machine (some properties file?)?
>> 
>> Thanks for the explanation
>> 
>> Alfredo
>> 
> 


Re: Register a remote computational resource steps

Posted by Suresh Marru <sm...@apache.org>.
Hi Alfredo,

We will be happy to walk through these steps using a test PHP interface which consumes the same API you are programming against. 

http://dev.test-drive.airavata.org/portal/pga/public/ <http://dev.test-drive.airavata.org/portal/pga/public/>

Navigating through the working PHP code in this repo might help understand the API sequences better.

Suresh

> On Apr 30, 2015, at 9:30 AM, Chathuri Wimalasena <ka...@gmail.com> wrote:
> 
> Hi, 
> 
> You do not need to have airavata server running in remote instance. Only local instance is sufficient. Here are the steps you should do in order to use your application. 
> Register the compute resource
> Register the gatewayResource preference for the gateway profile 
> Register an application module
> Register the application interface
> Register the application deployment
> I assume you went through all the above steps. From each register method of the API, you will get a ID in return. When you create the experiment object, you need to give the application interface id as the "applicationId" and give the compute resource id as the "resourceHostId" of the ComputationalResourceScheduling object. Sample experiment object is like this. 
> 
> 
> Experiment simpleExperiment =
>                                     ExperimentModelUtil.createSimpleExperiment(projectID, testUser, "TestFR_Ultrascan_Experiment", "Ultrascan Experiment run", appId, applicationInputs);
> simpleExperiment.setExperimentOutputs(appOutputs);
> ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(hostId, 4, 1, 1, "normal", 30, 0, 1, null);
> UserConfigurationData userConfigurationData = new UserConfigurationData();
> userConfigurationData.setAiravataAutoSchedule(false);
> userConfigurationData.setOverrideManualScheduledParams(false);
> userConfigurationData.setComputationalResourceScheduling(scheduling);
> simpleExperiment.setUserConfigurationData(userConfigurationData);
> experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
> 
> Hope this helps.
> 
> Thanks..
> Chathuri
> 
> 
> On Wed, Apr 29, 2015 at 8:39 AM, SmashRod Alfredo <smashrod@hotmail.it <ma...@hotmail.it>> wrote:
> Hi Everyone,
> I need some details on the steps necessary in order to register a remote computational resource on Airavata.
> 
> The first question is really dumb but I don't find anywhere a detailed answer or explanation: it is necessary to have an airavata-server instance running on both local (where computational resource is registered) and remote machine?
> 
> 
> I've try to register an internal computational resource without success doing the following:
> -> Register the computational resources (following the provided samples)
>             computeResourceID = registerComputeHost(remoteMachineDomainName, "RTSRV SSC Machine",
>                     ResourceJobManagerType.FORK, "push", "/usr/bin", SecurityProtocol.SSH_KEYS, 22, null);
>             System.out.println("Resource Id is " + computeResourceID);
> 
> -> Register the GatewayResourceProfile
> 
>             ComputeResourcePreference rtsrvComputateResourcePreference = RegisterSampleApplicationsUtils.
>                     createComputeResourcePreference(computeResourceID , null, false, null,
>                             JobSubmissionProtocol.SSH, DataMovementProtocol.SCP, "/tmp");
>     
>             GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
>             gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
>             gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
>             gatewayResourceProfile.addToComputeResourcePreferences(rtsrvComputateResourcePreference);
>  
>             String gatewayProfile = airavataClient.registerGatewayResourceProfile(gatewayResourceProfile);
>             System.out.println("Gateway Profile is registered with Id " + gatewayProfile);
>             writeIdPropertyFile("Gateway Profile ID",gatewayProfile,propertyFile);
> 
> -> Register an application deployment of the remote host
> 
> When try to execute a workflow using the defined application on the registered remote machine I got the following error:
> Computational resource scheduling is not configured for host ......
> 
> Does something missing on my remote machine (airavata-server running or some kind of services?), or something is not properly configured on the local machine (some properties file?)?
> 
> Thanks for the explanation
> 
> Alfredo
> 


Re: Register a remote computational resource steps

Posted by Chathuri Wimalasena <ka...@gmail.com>.
Hi,

You do not need to have airavata server running in remote instance. Only
local instance is sufficient. Here are the steps you should do in order to
use your application.

   1. Register the compute resource
   2. Register the gatewayResource preference for the gateway profile
   3. Register an application module
   4. Register the application interface
   5. Register the application deployment

I assume you went through all the above steps. From each register method of
the API, you will get a ID in return. When you create the experiment
object, you need to give the application interface id as the
"applicationId" and give the compute resource id as the "resourceHostId" of
the ComputationalResourceScheduling object. Sample experiment object is
like this.


Experiment simpleExperiment =

ExperimentModelUtil.createSimpleExperiment(projectID, testUser,
"TestFR_Ultrascan_Experiment", "Ultrascan Experiment run", appId,
applicationInputs);
simpleExperiment.setExperimentOutputs(appOutputs);
ComputationalResourceScheduling scheduling =
ExperimentModelUtil.createComputationResourceScheduling(hostId, 4, 1, 1,
"normal", 30, 0, 1, null);
UserConfigurationData userConfigurationData = new UserConfigurationData();
userConfigurationData.setAiravataAutoSchedule(false);
userConfigurationData.setOverrideManualScheduledParams(false);
userConfigurationData.setComputationalResourceScheduling(scheduling);
simpleExperiment.setUserConfigurationData(userConfigurationData);
experimentId = airavata.createExperiment(gatewayId, simpleExperiment);

Hope this helps.

Thanks..
Chathuri


On Wed, Apr 29, 2015 at 8:39 AM, SmashRod Alfredo <sm...@hotmail.it>
wrote:

> Hi Everyone,
> I need some details on the steps necessary in order to register a remote
> computational resource on Airavata.
>
> The first question is really dumb but I don't find anywhere a detailed
> answer or explanation: it is necessary to have an airavata-server instance
> running on both local (where computational resource is registered) and
> remote machine?
>
>
> I've try to register an internal computational resource without success
> doing the following:
> -> Register the computational resources (following the provided samples)
>             computeResourceID =
> registerComputeHost(remoteMachineDomainName, "RTSRV SSC Machine",
>                     ResourceJobManagerType.FORK, "push", "/usr/bin",
> SecurityProtocol.SSH_KEYS, 22, null);
>             System.out.println("Resource Id is " + computeResourceID);
>
> -> Register the GatewayResourceProfile
>
>             ComputeResourcePreference rtsrvComputateResourcePreference =
> RegisterSampleApplicationsUtils.
>                     createComputeResourcePreference(computeResourceID ,
> null, false, null,
>                             JobSubmissionProtocol.SSH,
> DataMovementProtocol.SCP, "/tmp");
>
>             GatewayResourceProfile gatewayResourceProfile = new
> GatewayResourceProfile();
>             gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
>             gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
>
> gatewayResourceProfile.addToComputeResourcePreferences(rtsrvComputateResourcePreference);
>
>             String gatewayProfile =
> airavataClient.registerGatewayResourceProfile(gatewayResourceProfile);
>             System.out.println("Gateway Profile is registered with Id " +
> gatewayProfile);
>             writeIdPropertyFile("Gateway Profile
> ID",gatewayProfile,propertyFile);
>
> -> Register an application deployment of the remote host
>
> When try to execute a workflow using the defined application on the
> registered remote machine I got the following error:
> Computational resource scheduling is not configured for host ......
>
> Does something missing on my remote machine (airavata-server running or
> some kind of services?), or something is not properly configured on the
> local machine (some properties file?)?
>
> Thanks for the explanation
>
> Alfredo
>