aboutsummaryrefslogtreecommitdiffstats
path: root/Application
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-09-14 16:43:01 +0200
committerLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-09-14 16:43:01 +0200
commit1656194bb55cfccb78132df252de3bdea51bd869 (patch)
tree20742b65197097bbb82c7d8189630e091a1fb123 /Application
parentScope in partial model initialised by the given model scope (diff)
downloadVIATRA-Generator-1656194bb55cfccb78132df252de3bdea51bd869.tar.gz
VIATRA-Generator-1656194bb55cfccb78132df252de3bdea51bd869.tar.zst
VIATRA-Generator-1656194bb55cfccb78132df252de3bdea51bd869.zip
Updated progress monitor for huge amount instance generation processes
Diffstat (limited to 'Application')
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend8
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend23
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend4
3 files changed, 21 insertions, 14 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend
index 624e75a5..be35b64a 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend
@@ -9,9 +9,15 @@ class EclipseBasedProgressMonitor extends SolverProgressMonitor{
9 public new(IProgressMonitor internalMonitor) { 9 public new(IProgressMonitor internalMonitor) {
10 this.internalMonitor = internalMonitor 10 this.internalMonitor = internalMonitor
11 } 11 }
12 var double currentDouble = 0.0
13 var int currentInt = 0
12 14
13 override protected processWorked(double amount) { 15 override protected processWorked(double amount) {
14 internalMonitor.worked((amount*1000).intValue) 16 val newDouble = currentDouble+amount
17 val newInt = (newDouble*1000).intValue
18 internalMonitor.worked(newInt-currentInt)
19 currentDouble = newDouble
20 currentInt = newInt
15 } 21 }
16 22
17 override isCancelled() { 23 override isCancelled() {
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend
index ad950fc8..c9d38c7d 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend
@@ -186,6 +186,7 @@ class GenerationTaskExecutor {
186 console.writeMessage("Model generation started") 186 console.writeMessage("Model generation started")
187 for(run : 1..runs) { 187 for(run : 1..runs) {
188 monitor.subTask('''Solving problem«IF runs>0» «run»/«runs»«ENDIF»''') 188 monitor.subTask('''Solving problem«IF runs>0» «run»/«runs»«ENDIF»''')
189 val visualisationProgressMonitor= new EclipseBasedProgressMonitor(monitor)
189 190
190 // 6.2 For each run, the configuration and the workspace is adjusted 191 // 6.2 For each run, the configuration and the workspace is adjusted
191 solverLoader.setRunIndex(solverConfig,configurationMap,run,console) 192 solverLoader.setRunIndex(solverConfig,configurationMap,run,console)
@@ -240,44 +241,44 @@ class GenerationTaskExecutor {
240 dotRepresentations += outputWorkspaceForRun.getFile(dotFileName) 241 dotRepresentations += outputWorkspaceForRun.getFile(dotFileName)
241 } 242 }
242 else { 243 else {
243 dotRepresentations += null 244 dotRepresentations.add(null)
244 } 245 }
245 } else { 246 } else {
246 gmlRepresentations += null 247 gmlRepresentations.add(null)
247 dotRepresentations += null 248 dotRepresentations.add(null)
248 } 249 }
249 } 250 }
250 monitor.worked(100) 251 visualisationProgressMonitor.worked(1.0/interpretations.size)
251 } 252 }
252 if(!emfRepresentations.empty) { 253 if(!emfRepresentations.empty) {
253 console.writeMessage( 254 console.writeMessage(
254 '''Models: «FOR f : emfRepresentations»#«ENDFOR»''', 255 '''Models: «FOR f : emfRepresentations.filterNull»#«ENDFOR»''',
255 "#", 256 "#",
256 emfRepresentations.map[ 257 emfRepresentations.filterNull.map[
257 new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) 258 new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it)
258 ] 259 ]
259 ) 260 )
260 } 261 }
261 if(!gmlRepresentations.empty) { 262 if(!gmlRepresentations.empty) {
262 console.writeMessage( 263 console.writeMessage(
263 '''Visualisations: «FOR f : gmlRepresentations»#«ENDFOR»''', 264 '''Visualisations: «FOR f : gmlRepresentations.filterNull»#«ENDFOR»''',
264 "#", 265 "#",
265 gmlRepresentations.map[ 266 gmlRepresentations.filterNull.map[
266 new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) 267 new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it)
267 ] 268 ]
268 ) 269 )
269 } 270 }
270 if(!dotRepresentations.empty) { 271 if(!dotRepresentations.empty) {
271 console.writeMessage( 272 console.writeMessage(
272 '''Visualisations: «FOR f : dotRepresentations»#«ENDFOR»''', 273 '''Visualisations: «FOR f : dotRepresentations.filterNull»#«ENDFOR»''',
273 "#", 274 "#",
274 dotRepresentations.map[ 275 dotRepresentations.filterNull.map[
275 new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) 276 new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it)
276 ] 277 ]
277 ) 278 )
278 } 279 }
279 } else { 280 } else {
280 monitor.worked(solverConfig.solutionScope.numberOfRequiredSolution*100) 281 visualisationProgressMonitor.worked(1.0)
281 } 282 }
282 solutionVisualisationTime = System.nanoTime - solutionVisualisationTime 283 solutionVisualisationTime = System.nanoTime - solutionVisualisationTime
283 284
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend
index b9813040..c9ec68bb 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend
@@ -102,12 +102,12 @@ class ScriptExecutor {
102 /** 102 /**
103 * Mapping time = 100 103 * Mapping time = 100
104 * Solving = 1000 * runs 104 * Solving = 1000 * runs
105 * Visualisation = runs * number * 100 105 * Visualisation = 1000 * runs
106 */ 106 */
107 def protected dispatch getTotalWork(GenerationTask task) { 107 def protected dispatch getTotalWork(GenerationTask task) {
108 val runs = if(task.runSpecified) { task.runs } else { 1 } 108 val runs = if(task.runSpecified) { task.runs } else { 1 }
109 val number = if(task.numberSpecified) { task.number } else { 1 } 109 val number = if(task.numberSpecified) { task.number } else { 1 }
110 return 100 + runs*1000 +runs*number*100 110 return 100 + runs*1000 +runs*1000
111 } 111 }
112 def protected dispatch getTotalWork(Task task) { 112 def protected dispatch getTotalWork(Task task) {
113 throw new IllegalArgumentException('''Unsupported task type: «task.class.simpleName»!''') 113 throw new IllegalArgumentException('''Unsupported task type: «task.class.simpleName»!''')