jaiDef.getTileScheduler().setParallelism(jai.getTileThreads()); jaiDef.getTileScheduler().setPrefetchParallelism(jai.getTileThreads()); jaiDef.getTileScheduler().setPriority(jai.getTilePriority()); jaiDef.getTileScheduler().setPrefetchPriority(jai.getTilePriority());
public OperatorExecutor(PlanarImage[] images, int tileCountX, int tileCountY, int parallelism) { this.images = images; this.tileCountX = tileCountX; this.tileCountY = tileCountY; this.parallelism = parallelism; this.tileScheduler = JAI.getDefaultInstance().getTileScheduler(); }
public OperatorExecutor(PlanarImage[] images, int tileCountX, int tileCountY) { this(images, tileCountX, tileCountY, JAI.getDefaultInstance().getTileScheduler().getParallelism()); }
private static void initJAI(ClassLoader cl) { // Suppress ugly (and harmless) JAI error messages saying that a JAI is going to continue in pure Java mode. System.setProperty("com.sun.media.jai.disableMediaLib", "true"); // disable native libraries for JAI // Must use a new operation registry in order to register JAI operators defined in Ceres and BEAM OperationRegistry operationRegistry = OperationRegistry.getThreadSafeOperationRegistry(); InputStream is = SystemUtils.class.getResourceAsStream(JAI_REGISTRY_PATH); if (is != null) { // Suppress ugly (and harmless) JAI error messages saying that a descriptor is already registered. final PrintStream oldErr = System.err; try { setSystemErr(new PrintStream(new ByteArrayOutputStream())); operationRegistry.updateFromStream(is); operationRegistry.registerServices(cl); JAI.getDefaultInstance().setOperationRegistry(operationRegistry); } catch (IOException e) { BeamLogManager.getSystemLogger().log(Level.SEVERE, MessageFormat.format("Error loading {0}: {1}", JAI_REGISTRY_PATH, e.getMessage()), e); } finally { setSystemErr(oldErr); } } else { BeamLogManager.getSystemLogger().warning(MessageFormat.format("{0} not found", JAI_REGISTRY_PATH)); } Integer parallelism = Integer.getInteger(BEAM_PARALLELISM_PROPERTY_NAME, Runtime.getRuntime().availableProcessors()); JAI.getDefaultInstance().getTileScheduler().setParallelism(parallelism); BeamLogManager.getSystemLogger().info( MessageFormat.format("JAI tile scheduler parallelism set to {0}", parallelism)); }
values.put(KEY_JAI_TILE_THREADS, Integer.toString(jai.getTileScheduler().getParallelism())); values.put(KEY_JAI_TILE_THREAD_PRIORITY, Integer.toString(jai.getTileScheduler() .getPriority()));
KEY_JAI_MEM_THRESHOLD, Integer.toString((int) (100.0f * jaiCache.getMemoryThreshold())) + "%"); values.put(KEY_JAI_TILE_THREADS, Integer.toString(jai.getTileScheduler().getParallelism())); values.put( KEY_JAI_TILE_THREAD_PRIORITY, Integer.toString(jai.getTileScheduler().getPriority()));
final int minTy = ri.getMinTileY(); int TH = multithreadingLevel; final TileScheduler ts = JAI.getDefaultInstance().getTileScheduler(); final List<Point> tiles = new ArrayList<Point>(); final LinkedBlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>(); final int minTx = ri.getMinTileX(); final int minTy = ri.getMinTileY(); TileScheduler ts = JAI.getDefaultInstance().getTileScheduler(); List<Point> tiles = new ArrayList<Point>(); int tx = 0;
private void initializeJAI() { long tileCacheCapacity = commandLineArgs.getTileCacheCapacity(); int tileSchedulerParallelism = commandLineArgs.getTileSchedulerParallelism(); if (tileCacheCapacity > 0) { JAI.enableDefaultTileCache(); JAI.getDefaultInstance().getTileCache().setMemoryCapacity(tileCacheCapacity); } else { JAI.getDefaultInstance().getTileCache().setMemoryCapacity(0L); JAI.disableDefaultTileCache(); } if (tileSchedulerParallelism > 0) { JAI.getDefaultInstance().getTileScheduler().setParallelism(tileSchedulerParallelism); } final long tileCacheSize = JAI.getDefaultInstance().getTileCache().getMemoryCapacity() / (1024L * 1024L); commandLineContext.getLogger().info(MessageFormat.format("JAI tile cache size is {0} MB", tileCacheSize)); final int schedulerParallelism = JAI.getDefaultInstance().getTileScheduler().getParallelism(); commandLineContext.getLogger().info( MessageFormat.format("JAI tile scheduler parallelism is {0}", schedulerParallelism)); }
int parallelism = Runtime.getRuntime().availableProcessors(); System.out.println("parallelism = " + parallelism); JAI.getDefaultInstance().getTileScheduler().setParallelism(parallelism); Dimension frameSize = getFrameSize(); int numXFrames = 1 + (product.getSceneRasterWidth() - 1) / frameSize.width;
@Override protected void setUp() throws Exception { GPF.getDefaultInstance().getOperatorSpiRegistry().addOperatorSpi(algoSpi); GPF.getDefaultInstance().getOperatorSpiRegistry().addOperatorSpi(writeSpi); outputFile = GlobalTestConfig.getBeamTestDataOutputFile("WriteOpTest/writtenProduct.dim"); outputFile.getParentFile().mkdirs(); TileScheduler tileScheduler = JAI.getDefaultInstance().getTileScheduler(); oldParallelism = tileScheduler.getParallelism(); tileScheduler.setParallelism(Runtime.getRuntime().availableProcessors()); }
((tscheduler == JAI.getDefaultInstance().getTileScheduler()) ? "<global>" : "<local>") + ", parallelism " + tscheduler.getParallelism() + ", priority " + tscheduler.getPriority());
private static void scheduleTiles(int sleepTime) { ImageLayout imageLayout = new ImageLayout(); imageLayout.setTileWidth(512); imageLayout.setTileHeight(512); RenderedOp op = ConstantDescriptor.create(1024f, 1024f, new Short[]{1}, new RenderingHints(JAI.KEY_IMAGE_LAYOUT, imageLayout)); TileScheduler tileScheduler = JAI.getDefaultInstance().getTileScheduler(); MyTileComputationListener listener = new MyTileComputationListener(); for (int i = 0; i < 1000; i++) { tileScheduler.scheduleTiles(op, new Point[]{ new Point(0, 0) }, new TileComputationListener[]{ listener }); if (sleepTime > 0) { sleep(sleepTime); } } sleep(100); System.out.println("scheduleTiles(sleepTime = " + sleepTime + "):"); System.out.println(" Tiles computed: " + listener.computed); System.out.println(" Tiles cancelled: " + listener.cancelled); System.out.println(" Tile computation failures: " + listener.computationFailures); }
((tscheduler == JAI.getDefaultInstance().getTileScheduler()) ? "<global>" : "<local>") + ", parallelism " + tscheduler.getParallelism() + ", priority " + tscheduler.getPriority());
@Before public void setUp() throws Exception { defaultTileScheduler = JAI.getDefaultInstance().getTileScheduler(); recordingTileScheduler = new RecordingTileScheduler(defaultTileScheduler); JAI.getDefaultInstance().setTileScheduler(recordingTileScheduler); }
@Override protected void tearDown() throws Exception { GPF.getDefaultInstance().getOperatorSpiRegistry().removeOperatorSpi(algoSpi); GPF.getDefaultInstance().getOperatorSpiRegistry().removeOperatorSpi(writeSpi); File parentFile = outputFile.getParentFile(); FileUtils.deleteTree(parentFile); TileScheduler tileScheduler = JAI.getDefaultInstance().getTileScheduler(); tileScheduler.setParallelism(oldParallelism); }
@Override protected void setUp() throws Exception { context = new GraphCommandLineContext(); clTool = new CommandLineTool(context); GPF.getDefaultInstance().getOperatorSpiRegistry().addOperatorSpi(OP2_SPI); GPF.getDefaultInstance().getOperatorSpiRegistry().addOperatorSpi(OP3_SPI); GPF.getDefaultInstance().getOperatorSpiRegistry().addOperatorSpi(OUTPUT_OP_SPI); JAI jai = JAI.getDefaultInstance(); jaiTileScheduler = jai.getTileScheduler(); SunTileScheduler tileScheduler = new SunTileScheduler(); tileScheduler.setParallelism(Runtime.getRuntime().availableProcessors()); jai.setTileScheduler(tileScheduler); }
JAI.getDefaultInstance().setImagingListener(new GPFImagingListener()); final TileScheduler tileScheduler = JAI.getDefaultInstance().getTileScheduler(); final int parallelism = tileScheduler.getParallelism(); final Semaphore semaphore = new Semaphore(parallelism, true);
JAI.getDefaultInstance().getTileScheduler().setParallelism(10);
@Before public void setUp() throws Exception { context = new OpCommandLineContext(); clTool = new CommandLineTool(context); GPF.getDefaultInstance().getOperatorSpiRegistry().addOperatorSpi(OP3_SPI); GPF.getDefaultInstance().getOperatorSpiRegistry().addOperatorSpi(OP4_SPI); GPF.getDefaultInstance().getOperatorSpiRegistry().addOperatorSpi(OP5_SPI); GPF.getDefaultInstance().getOperatorSpiRegistry().addOperatorSpi(OUTPUT_OP_SPI); JAI jai = JAI.getDefaultInstance(); jaiTileScheduler = jai.getTileScheduler(); SunTileScheduler tileScheduler = new SunTileScheduler(); tileScheduler.setParallelism(Runtime.getRuntime().availableProcessors()); jai.setTileScheduler(tileScheduler); }
JAI.getDefaultInstance().getTileScheduler().setParallelism(1);