use of org.hl7.fhir.dstu3.model.Person in project compss by bsc-wdc.
the class Redis method testMergeReduce.
public static void testMergeReduce() {
// Init
Person[] people = new Person[4];
for (int i = 0; i < people.length; ++i) {
String id = "person_" + UUID.randomUUID().toString();
System.out.println("[LOG][PSCO_MR] Person " + i + " BeginId = " + id);
people[i] = new Person("PName" + i, i, i);
people[i].makePersistent(id);
}
// Map
for (int i = 0; i < people.length; ++i) {
people[i] = RedisImpl.taskMap("NewName" + i, people[i]);
}
// Reduce
LinkedList<Integer> q = new LinkedList<Integer>();
for (int i = 0; i < people.length; i++) {
q.add(i);
}
int x = 0;
while (!q.isEmpty()) {
x = q.poll();
int y;
if (!q.isEmpty()) {
y = q.poll();
people[x] = RedisImpl.taskReduce(people[x], people[y]);
q.add(x);
}
}
// Get (sync) and write result
Person p1 = people[0];
String name = p1.getName();
int age = p1.getAge();
int numC = p1.getNumComputers();
System.out.println("[LOG][PSCO_MR] Person " + name + " with age " + age + " has " + numC + " computers");
System.out.println("[LOG][PSCO_MR] EndId = " + p1.getID());
}
use of org.hl7.fhir.dstu3.model.Person in project compss by bsc-wdc.
the class Redis method testPSCOTarget.
private static void testPSCOTarget() {
String id = "person_" + UUID.randomUUID().toString();
Person p = new Person("PName1", 1, 1);
p.makePersistent(id);
// Invoke 2 times to check if parameter is well returned from worker
p.taskPSCOTarget();
p.taskPSCOTarget();
String name = p.getName();
int age = p.getAge();
int numC = p.getNumComputers();
System.out.println("[LOG][PSCO_TARGET] Person " + name + " with age " + age + " has " + numC + " computers");
System.out.println("[LOG][PSCO_TARGET] BeginId = " + id + " EndId = " + p.getID());
}
use of org.hl7.fhir.dstu3.model.Person in project compss by bsc-wdc.
the class Redis method testPSCOInOutTaskPersisted.
private static void testPSCOInOutTaskPersisted() {
Person p = new Person("PName2", 2, 2);
String id = RedisImpl.taskPSCOInOutTaskPersisted(p);
String name = p.getName();
int age = p.getAge();
int numC = p.getNumComputers();
System.out.println("[LOG][PSCO_INOUT_TP] Person " + name + " with age " + age + " has " + numC + " computers");
System.out.println("[LOG][PSCO_INOUT_TP] BeginId = " + id + " EndId = " + p.getID());
}
use of org.hl7.fhir.dstu3.model.Person in project compss by bsc-wdc.
the class Redis method testPSCOIn.
private static void testPSCOIn() {
String id = "person_" + UUID.randomUUID().toString();
Person p = new Person("PName1", 1, 1);
p.makePersistent(id);
System.out.println("Object p has id " + p.getID());
RedisImpl.taskPSCOIn(p);
}
use of org.hl7.fhir.dstu3.model.Person in project compss by bsc-wdc.
the class Main method produceSpawnConsumers.
private static void produceSpawnConsumers(int numProducers, int producerSleep, int consumerSleep) throws RegistrationException, IOException, BackendException {
// Create stream
PscoDistroStream<Person> pds = new PscoDistroStream<>(ConsumerMode.AT_MOST_ONCE);
// Create producer task
for (int i = 0; i < numProducers; ++i) {
Tasks.writePscos(pds, producerSleep);
}
// Check stream status and generate consumers
Integer[] partialPscos = new Integer[MAX_ENTRIES];
int pos = 0;
while (!pds.isClosed()) {
List<Person> newPscos = pds.poll();
for (Person p : newPscos) {
System.out.println("Sending " + p.getID() + ":" + p.getName() + ":" + p.getAge() + " to a process task");
partialPscos[pos] = Tasks.processPsco(p);
pos = pos + 1;
}
// Sleep between polls
try {
Thread.sleep(consumerSleep);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
// Although the stream is closed, there can still be pending events to process
List<Person> newPscos = pds.poll();
for (Person p : newPscos) {
System.out.println("Sending " + p.getID() + ":" + p.getName() + ":" + p.getAge() + " to a process task");
partialPscos[pos] = Tasks.processPsco(p);
pos = pos + 1;
}
// Get all processed values
Integer totalPscos = 0;
for (int i = 0; i < pos; ++i) {
if (partialPscos[i] != null) {
totalPscos = totalPscos + partialPscos[i];
}
}
// Wait for tasks completion
System.out.println("[LOG] TOTAL NUMBER OF PROCESSED PSCOS: " + totalPscos);
}
Aggregations