Patent application number | Description | Published |
20150368562 | BIOMASS GAS AND BIOMASS CHARCOAL PREPARATION SYSTEM - The present invention relates to a biomass gas and biomass charcoal preparation system, including three successive working units: a feeding unit, a pyrolysis reaction unit, and a discharging unit, and further having a pyrolysis reaction control system. The pyrolysis reaction unit has a pyrolysis reaction body. The pyrolysis reaction body is provided therein with a helical propulsion device and an air supply device. The pyrolysis reaction body is a rectangular cavity having a metal shell. The cavity of the pyrolysis reaction body is divided into two parts: an upper part and a lower part that are separable. In the present invention, the pyrolysis reaction body is provided therein with a thermal insulating layer, which effectively separates the metal shell from a high-temperature reaction medium, so requirements for the heat resistance of the material of the cavity of the pyrolysis reaction body are lowered, a common carbon steel material can be used and the cost is reduced, and the metal shell is effectively relieved of thermal deformation, and heat loss is reduced; the pyrolysis reaction body is divided into an upper part and a lower part, so it is easier to disassemble wearing parts on the bottom of the reaction body to facilitate maintenance and replacement. | 12-24-2015 |
20160068757 | VERTICAL PYROLYSIS REACTOR WITH PRECISE CONTROL - The present invention relates to a vertical pyrolysis reactor, including a reactor shell, a feeding device, a biomass gas outlet on the top of the reactor, an ash discharging device on the bottom of the reactor, and a grate inside the reactor. The feeding device is located on the bottom of the reactor, and an outlet of the feeding device is located in a central region of the bottom in the reactor for uniform material distribution. A slag breaking device is mounted in the pyrolysis reactor, forming an organic combination with the rotating grate. The output is adjustable through the operating speed of the grate. Precise control of a pyrolysis reaction is realized by controlling the feeding speed, discharging speed, material bed thickness, inlet air volume, inlet air distribution, reaction temperature, etc. Biomass having a size up to around 10 cm can be processed effectively and continuously due to the position design of the feeding device in conjunction with the use of the slag breaking device. | 03-10-2016 |
Patent application number | Description | Published |
20080229297 | METHOD AND SYSTEM FOR REDUCING MEMORY REFERENCE OVERHEAD ASSOCIATED WITH TREADPRIVATE VARIABLES IN PARALLEL PROGRAMS - A computer implemented method, system and computer program product for accessing threadprivate memory for threadprivate variables in a parallel program during program compilation. A computer implemented method for accessing threadprivate variables in a parallel program during program compilation includes aggregating threadprivate variables in the program, replacing references of the threadprivate variables by indirect references, moving address load operations of the threadprivate variables, and replacing the address load operations of the threadprivate variables by calls to runtime routines to access the threadprivate memory. The invention enables a compiler to minimize the runtime routines call times to access the threadprivate variables, thus improving program performance. | 09-18-2008 |
20080301656 | METHOD OF PROCEDURE CONTROL DESCRIPTOR-BASED CODE SPECIALIZATION FOR CONTEXT SENSITIVE MEMORY DISAMBIGUATION - A computer implemented method, apparatus, and computer program product for compiling source code. The source code is scanned to identify a candidate region. A procedure control descriptor is corresponding to the candidate region is generated. The procedure control descriptor identifies, for the candidate region, a condition which, if true at runtime means that the candidate region can be specialized. Responsive to a determination during compile time that satisfaction of at least one condition will be known only at runtime, the procedure control descriptor is used to specialize the candidate region at compile time to create a first version of the candidate region for execution in a case where the condition is true and a second version of the candidate region for execution in a case where the condition is false. Also responsive to the determination, code is further generated to correctly select one of the first region and the second region at runtime. | 12-04-2008 |
20090019425 | DATA SPLITTING FOR RECURSIVE DATA STRUCTURES - Embodiments of the present invention provide a method, system and computer program product for the data splitting of recursive data structures. In one embodiment of the invention, a method for data splitting recursive data structures can be provided. The method can include identifying data objects of a recursive data structure type, such as a linked list, within source code, the recursive data structure type defining multiple different data fields. The method further can include grouping the data objects into some memory pool units, each of which can contain the same number of data objects. Each memory pool unit can be seen as an array of data objects. The method can include data splitting, which could be maximal array splitting in each different memory pool unit. Finally, the method can include three different approaches, including field padding, field padding and field splitting, to handle irregular field sizes in the data structure. | 01-15-2009 |
20090106745 | Method and Apparatus for Optimizing Software Program Using Inter-Procedural Strength Reduction - Inter-procedural strength reduction is provided by a mechanism of the present invention to optimize software program. During a forward pass, the present invention collects information of global variables and analyzes the information to select candidate computations for optimization. During a backward pass, the present invention replaces costly computations with less costly or weaker computations using pre-computed values and inserts store operations of new global variables to pre-compute the costly computations at definition points of the global variables used in the costly computations. | 04-23-2009 |
20100077153 | Optimal Cache Management Scheme - Computer implemented method, system and computer usable program code for cache management. A cache is provided, wherein the cache is viewed as a sorted array of data elements, wherein a top position of the array is a most recently used position of the array and a bottom position of the array is a least recently used position of the array. A memory access sequence is provided, and a training operation is performed with respect to a memory access of the memory access sequence to determine a type of memory access operation to be performed with respect to the memory access. Responsive to a result of the training operation, a cache replacement operation is performed using the determined memory access operation with respect to the memory access. | 03-25-2010 |
20100162220 | Code Motion Based on Live Ranges in an Optimizing Compiler - Optimizing program code in a static compiler by determining the live ranges of variables and determining which live ranges are candidates for moving code from the use site to the definition site of source code. Live ranges for variables in a flow graph are determined. Selected live ranges are determined as candidates in which code will be moved from a use site within the source code to a definition site within the source code. Optimization opportunities within the source code are identified based on the code motion. | 06-24-2010 |
20110072419 | MAY-CONSTANT PROPAGATION - May-constant propagation is a technique used to propagate a constant through the call graph and control flow graph by ignoring possible kills and re-definitions with low probability. Variables associated with constants in program code are determined. Execution flow probabilities are executed for code segments of the program code that comprise the variables. The execution flow probabilities are calculated based on flow data for the program code. At least a first of the code segments is determined to have a high execution flow probability. The first of the constants associated with the first variable are propagated through the flow data to generate modified flow data. | 03-24-2011 |
20130019232 | MANAGING ALIASING CONSTRAINTSAANM CUI; SHIMINAACI TORONTOAACO CAAAGP CUI; SHIMIN TORONTO CAAANM SILVERA; RAUL E.AACI WOODBRIDGEAACO CAAAGP SILVERA; RAUL E. WOODBRIDGE CA - An illustrative embodiment of a computer-implemented process for managing aliasing constraints, identifies an object to form an identified object, identifies a scope of the identified object to form an identified scope, and assigns a unique value to the identified object within the identified scope. The computer-implemented process further demarcates an entrance to the identified scope, demarcates an exit to the identified scope, optimizes the identified object using a property of the identified scope and associated aliasing information, tracks the identified object state to form tracked state information; and uses the tracked state information to update the identified object. | 01-17-2013 |
20150046913 | DATA SPLITTING FOR MULTI-INSTANTIATED OBJECTS - Embodiments relate to data splitting for multi-instantiated objects. An aspect includes receiving a portion of source code for compilation having a dynamic object to split using object size array data splitting. Another aspect includes replacing all memory allocations for the dynamic object with a total size of an object size array and object field arrays including a predetermined padding. Another aspect includes inserting statements in the source code after the memory allocations to populate the object size array with a value of a number of elements of the object size array. Another aspect includes updating a stride for load and store operations using dynamic pointers. Yet another aspect includes modifying field references by adding a distance between the object size array and the object field array to respective address operations. | 02-12-2015 |
20150067260 | OPTIMIZING MEMORY BANDWIDTH CONSUMPTION USING DATA SPLITTING WITH SOFTWARE CACHING - A computer processor collects information for a dominant data access loop and reference code patterns based on data reference pattern analysis, and for pointer aliasing and data shape based on pointer escape analysis. The computer processor selects a candidate array for data splitting wherein the candidate array is referenced by a dominant data access loop. The computer processor determines a data splitting mode by which to split the data of the candidate array, based on the reference code patterns, the pointer aliasing, and the data shape information, and splits the data into two or more split arrays. The computer processor creates a software cache that includes a portion of the data of the two or more split arrays in a transposed format, and maintains the portion of the transposed data within the software cache and consults the software cache during an access of the split arrays. | 03-05-2015 |
20150067268 | OPTIMIZING MEMORY BANDWIDTH CONSUMPTION USING DATA SPLITTING WITH SOFTWARE CACHING - A computer processor collects information for a dominant data access loop and reference code patterns based on data reference pattern analysis, and for pointer aliasing and data shape based on pointer escape analysis. The computer processor selects a candidate array for data splitting wherein the candidate array is referenced by a dominant data access loop. The computer processor determines a data splitting mode by which to split the data of the candidate array, based on the reference code patterns, the pointer aliasing, and the data shape information, and splits the data into two or more split arrays. The computer processor creates a software cache that includes a portion of the data of the two or more split arrays in a transposed format, and maintains the portion of the transposed data within the software cache and consults the software cache during an access of the split arrays. | 03-05-2015 |
20150277871 | RECURSIVE EXPRESSION SIMPLIFICATION - A computer-implemented method, carried out by one or more processors, for recursive expression reduction. In an embodiment, the method comprises the steps of identifying a candidate loop, where the candidate loop includes at least one or more reduction variables and reduction operations; altering grouping of loop invariants and loop variants within the candidate loop; and performing recursive expression simplification for an inner loop, wherein the inner loop is located within the candidate loop. | 10-01-2015 |
20150277873 | RECURSIVE EXPRESSION SIMPLIFICATION - A computer-implemented method, carried out by one or more processors, for recursive expression reduction. In an embodiment, the method comprises the steps of identifying a candidate loop, where the candidate loop includes at least one or more reduction variables and reduction operations; altering grouping of loop invariants and loop variants within the candidate loop; and performing recursive expression simplification for an inner loop, wherein the inner loop is located within the candidate loop. | 10-01-2015 |
20150331682 | DATA SPLITTING FOR RECURSIVE DATA STRUCTURES - Embodiments of the present invention provide a method, system and computer program product for the data splitting of recursive data structures. In one embodiment of the invention, a method for data splitting recursive data structures can be provided. The method can include identifying data objects of a recursive data structure type, such as a linked list, within source code, the recursive data structure type defining multiple different data fields. The method further can include grouping the data objects into some memory pool units, each of which can contain the same number of data objects. Each memory pool unit can be seen as an array of data objects. The method can include data splitting, which could be maximal array splitting in each different memory pool unit. Finally, the method can include three different approaches, including field padding, field padding and field splitting, to handle irregular field sizes in the data structure. | 11-19-2015 |
Patent application number | Description | Published |
20120294793 | PRODUCTION OF GRAPHENE SHEETS AND RIBBONS - A method comprises: physically attaching one or more of metals, metal compounds or oxides to walls of carbon nanotubes; treating the metals, metal compounds or oxides to bond the metals, metal compounds, or oxides chemically to the carbon nanotubes; removing the metals, metal compounds or oxides from the walls of the carbon nanotubes resulting in defected carbon nanotubes; and unzipping the defected carbon nanotubes into graphene sheets or ribbons. | 11-22-2012 |
20130065050 | PRODUCTION OF DECORATED CARBON NANOTUBES - A method of dispersing a metal or metal oxide within a CNT or CNT array, comprising exposing the CNT or CNT array to a solution containing a metal compound in a non-aqueous liquid; and removing the non-aqueous liquid from the CNT or CNT array. Nanoparticles were homogenously deposited within millimeter-long carbon nanotube array (CNTA). After modified with nanoparticles, CNTA changes from hydrophobic to hydrophilic. The hydrophilic composite electrodes present ideal capacitive behavior with high reversibility. The novel, nano-architectured composite demonstrates strong promise for high-performance thick and compact electrochemical supercapacitors. | 03-14-2013 |
20130136860 | METHOD OF FABRICATING A CARBON NANOTUBE ARRAY - A method of fabricating carbon nanotube arrays (CNTA) on an oxide catalyst layer is disclosed. In one embodiment, the oxide catalyst is a metal oxide. The metal oxide may be deposited on a substrate used as a support. The CNTA is grown on the oxide catalyst layer under conditions promoting CNT growth. CNT growth is dependent on temperature, concentration of oxidizing molecules and carbon availability. One embodiment of the method comprises depositing an oxide catalyst layer on the substrate, heating the catalyst layer at certain rates to the target temperatures, adding oxidation molecules for the pretreatment of the oxide catalyst layer, and growing the array on the substrate. The oxide catalyst layer may comprise a group VIII element. | 05-30-2013 |
20150357846 | ELECTROCHEMICAL CELL AND METHOD OF MANUFACTURE - A method of modifying an electrode for an electrochemical cell in which the electrode is in contact with an electrolyte comprising one or more salts containing metal ions and halogen ions connecting the electrode in a circuit comprising the electrode, the electrolyte, and an opposite electrode; and applying a charging current to the circuit charging the circuit to a first voltage sufficient to drive halogen ions into the electrode to modify the atomic structure of the electrode. An electrochemical cell comprising a first electrode, an electrolyte comprising one or more salts containing metal ions and halogen ions; and a second electrode, the second electrode containing halogen ions when the electrochemical cell is in a charged state. | 12-10-2015 |