JP5081149B2 - 複数のプロセッサを備える機器上でのxslt処理における文書内並列処理をサポートする方法 - Google Patents

複数のプロセッサを備える機器上でのxslt処理における文書内並列処理をサポートする方法 Download PDF

Info

Publication number
JP5081149B2
JP5081149B2 JP2008512411A JP2008512411A JP5081149B2 JP 5081149 B2 JP5081149 B2 JP 5081149B2 JP 2008512411 A JP2008512411 A JP 2008512411A JP 2008512411 A JP2008512411 A JP 2008512411A JP 5081149 B2 JP5081149 B2 JP 5081149B2
Authority
JP
Japan
Prior art keywords
task
profile data
subtask
node
parsing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008512411A
Other languages
English (en)
Other versions
JP2008541302A (ja
JP2008541302A5 (ja
Inventor
ドン ツォウ,
ネイーン イズラム,
マーロン シー. ラインベリー,
ダネリア グラッデン−グリーン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2008541302A publication Critical patent/JP2008541302A/ja
Publication of JP2008541302A5 publication Critical patent/JP2008541302A5/ja
Application granted granted Critical
Publication of JP5081149B2 publication Critical patent/JP5081149B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Document Processing Apparatus (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

関連出願の相互参照
本願は、「Method for Supporting Intra−document parallelism in XSLT processing on devices with multiple processors」との名称で2005年5月18日に出願された整理番号M−15952−V1 USの米国仮特許出願第60/682599号と、「Methods for Supporting Intra−Document Parallelism in XSLT Processing On Devices With Multiple Processors」という名称で2005年9月20日に出願された整理番号M−15952 USの米国特許出願第11/231430号に関連するものであり、これら出願の優先権を主張するものである。これら出願の開示を、その全体を参照することによって、本明細書に援用する。
発明の分野
本発明は、XML文書の処理に関するものである。詳細には、本発明は、XML文書のXSL変換(XSLT)を並列処理する方法に関するものである。
関連技術の説明
XML文書は、XML又は別種の文書(HTML等)へと、例えば、拡張スタイルシート言語(XSL)変換、すなわちXSLTを用いて、変換されることがある。この変換によって得られる文書は、通常、アプリケーション(Webブラウザ等)による処理に適した形態をとる。XSLTは、1999年11月にW3C推奨となったものであり、XSL Transformations(XSLT)バージョン1.0に記載されている。この推奨規格の写しは、http://www.w3.org/TR/xsltから入手できる。通常、XSLTは、ツリー構造で表され得る文書を操作する。XSLTの用語では、ソース文書を「ソースツリー」といい、変換済み文書を「結果ツリー」という。
典型的な変換プロセスでは、XSLTは、XMLパス言語(「XPath」)を用いて変換のマッチングパターンを定義する。XPathは、XML文書の異なる部分をアドレス指定する。ソースツリーがXPartで定義されたXML文書の部分とマッチングする場合に、XSLTは、このソースツリーを結果ツリーに変換する。
しかしながら、XSLT処理は、計算負荷が高く、メモリアクセスも多い。さらに、XSLT処理は、通常、モバイル機器上では、デスクトップコンピュータ上より大幅に低速で実施される。これは、モバイル機器が、通常、より低いプロセッサ周波数とより低いメモリ帯域幅で動作し、比較的低機能のソフトウェアを実行するからである。このような欠点は、通常、専用ハードウェア(専用コプロセッサやハードウェアブロック等)を用いて克服される。例えば、汎用RISKプロセッサに加えて、現在のセルラ電話機は、通常、音声通信用のベースバンドプロセッサを備える。場合によっては、セルラ電話機は、グラフィックレンダリング用のDSPコプロセッサも備えることがある。専用の追加ハードウェアを加えることによって追加機能を提供することは、モバイル機器でXSLT処理を提供するのに実行可能な手法のように思われるが、このような手法は高くつく。したがって、専用ハードウェアを追加するのではなく、機器の汎用プロセッサを用いて追加機能を提供することが望ましい。
並列処理を活用して性能を達成することができる。文書処理では、文書間並列処理とは、複数の文書を複数のマシン又はプロセッサ上で同時に変換することを指し、各文書は、任意の時刻に、一つのマシン又はプロセッサのみによって処理される。かかる並列処理は、従来の並列又は分散計算処理ツールを使って達成することができ。このようなツールでは、通常、マシンの一つがマスタとして機能し、その他のマシンがスレーブとして機能する。マスタマシンは、各スレーブマシンに、「スタイルシート」と変換用のソース文書を送り、各スレーブマシンは、必要な変換を完了した後に、結果文書をマスタマシンに送り返す。現在、XA35 XML Accelerator(Data Power Technology, Inc.のhttp://www.datapower.com/products/xa35.html、から提供されている)とSpeedway XSLT Accelerator(Sarvega, Inc.のhttp://www.sarvega.com/xml−speedway−accelerator.php、から提供されている)が、このXSLT処理高速化の手法を用いた市販製品である。
また、文書間並列処理は、既存のスレッディング機構を用いて対称型マルチプロセッサプラットフォーム上で実現することもできる。この手法では、複数の実行スレッドを作成することができ、各スレッドが一つのプロセッサ上で動作し、1文書の変換を処理する。「System and Method for Fast XSL Transformation」という名称で2003年8月21日に公開された米国特許出願公開公報第2003/0159111号には、変換スレッドのプールをキャッシングし、複数文書の同時変換を可能にすることによって、並列XSL変換を実現することが記載されている。
2002年5月1日に出願された国際特許出願公開公報第WO2002/091170号「Dedicated Processor for Efficient Processing of Documents Encoded in a Markup Language」には、非対称型マルチプロセッサプラットフォームを用いた文書処理の改善について開示されている。この非対称型マルチプロセッサプラットフォームでは、XSLT変換を含むXML処理のために、専用プロセッサが提供されている。したがって、汎用プロセッサが、他のタスクの実行用により多く利用可能になる。
文書間並列処理は、スループット改善を目標としており、これは、サーバ環境に、特に、企業用途において、最適である。しかしながら、モバイルハンドセットでは、待ち時間とエネルギーの効率が、スループットよりも重要な問題である。
文書内並列処理とは、複数のマシン又はプロセッサを用いて1文書の変換を処理することを指す。かかる手法では、複数のマシン又はプロセッサが、総実行時間の少なくとも一部分において、同じ文書の変換を同時に実行する。「Method and Apparatus for Efficient Management of XML Documents」という名称で2001年12月13日に公開された国際特許出願公開公報第WO01095155号には、文書とその処理コードが複数のマシンによって同時に処理されるように、文書を、分散共有オブジェクトの形態として処理することが開示されている。この手法では、各マシンが処理コードをローカルに実行して文書を変更する。ローカルに行われる更新は、伝搬され、同期される。
しかしながら、分散共有オブジェクトの手法もまた、無線アクセスネットワーク全域での同期のコストが分散処理によって得られる如何なる利益も容易に打ち消し得るモバイルハンドセットの環境では実際的でない。さらに、前述の国際特許出願公開公報は、XSL変換の文書内並列処理に関する如何なる方法も開示していない。
Tarari RAX−CP Content Processor(Random Access XML(RAX)Content Processorは、Tarari,Inc.のhttp://www.tarari.com/rax/index.html、から提供されている)は、XPath要求を評価するXPathプロセッサのハードウェア実装を提供する。このXPathプロセッサは、一つ以上の他のプロセッサと並列に動作し、同時の要求を処理することができる。しかしながら、Tarari RAX−CP Content Processorは、XPath式評価だけを並列処理し、残りの変換を並列処理しない。XPath式評価は、XSL変換の総コストの主要部分ではないため、結果として得られる改善は、実行時間においてもエネルギー効率においても限られたものになる。
概要
本発明の一実施形態によれば、XSL変換プロセスを個別にスケジュール可能なサブタスクに分割し、個別にスケジュールされたXSLT処理サブタスクの同期を取り、処理結果をマージする方法が開示される。XSL変換は、(a)ソース文書のツリー表現を生成するソース文書構文解析と、(b)通常、スタイルシートの「apply−template」要素によってアクティブ化されるノード選択及びテンプレートマッチングと、(c)テンプレートをノードに適用するテンプレート実行と、を含む。
一実施形態では、各XML要素が、「構文解析タスク」又は「PT」サブタスクで表される別個のサブタスクによって構文解析される。要素を構文解析することは、その要素の子要素と他の構文(テキストノードや処理命令等)を構文解析することを伴うので、PTサブタスクは、別の(「親」)PTサブタスク内にネストさせることができる。ノード選択及びテンプレートマッチングは、「マッチングタスク」又は「MT」サブタスクにおいて実行される。MTサブタスクは、一つ又は複数のPTサブタスクの結果として生じることがあり、一つ以上のテンプレート実行(「ET」)サブタスクを生成することもある。ETサブタスクは、MTサブタスクによって作成される。ETサブタスクは、一つ以上のPTサブタスクの完了の結果として生じることがあり、一つ以上のMTサブタスクを作成することもある。
一実施形態では、ソースツリーが全てのサブタスク間で共有され、PTサブタスクはソースツリーへの書込みを行い、MTサブタスクとETサブタスクは、ソースツリーからの読取りを行う。MTサブタスクとETサブタスクはまた、結果ツリーも共有する。親PTサブタスクは、その子PTサブタスクの何れかが処理中である間は、ブロックされる。ブロックされたPTサブタスクは、文書ツリー内のそれに対応するノードにフラグを立てる。
ETサブタスクは、MTサブタスクに「プレースホルダ」を割り当て、MTの変換結果が後に結果文書にマージされ得るようにする。変数を読み取り又は書き込むETサブタスクは、それらの結果にETサブタスクが依存する他の全てのETサブタスクとMTサブタスクが完了するまで、ブロックされる。一実施形態では、ETサブタスクとPTサブタスクは、以下のように順序付けされる。(a)同じMTサブタスクによって作成されるETサブタスクは、作成の順に完了される。(b)同じETサブタスクによって作成されるMTサブタスクは、作成の順に完了される。(c)親ETサブタスクによって作成されるMTサブタスクの子ETサブタスクは、その親ETサブタスクが完了する前に完了する。
ETサブタスクは、そのETサブタスクが、PTサブタスクが完了する前に、そのPTサブタスクに対応するノードの子にアクセスすることが可能であるときに、そのPTサブタスク上でブロックされる。ブロックされたETサブタスクは、そのPTサブタスクブロックリストに置かれる。このETサブタスクは、ブロック側のPTサブタスクが完了したときにブロックリストから除去される。MTサブタスクは、その値にXPath式が依存する変数が完全に評価される前に、そのMTサブタスクがそのXPath式を評価することが可能であるときに、PTサブタスクによってブロックされる。このMTサブタスクは、そのPTサブタスクのブロックリストに置かれる。ノード集合の式(すなわち、XML文書ノードを評価する式)では、MTサブタスクは、PTサブタスクが進行した(子要素の構文解析を完了する等)ときに、通知を受ける。
本発明の別の実施形態によれば、モバイル機器の複数のプロセッサ上でサブタスクをスケジュールして文書変換の実行時間とエネルギー効率を改善する方法が開示される。一実施形態では、サブタスクが、例えば、リアルタイムスケジューリングアルゴリズム等を用いて、各プロセッサに割り当てられる。リアルタイムスケジューリングアルゴリズムは、マルチプロセッサのリアルタイムオペレーティングシステムによって一般的に実施されるものとすることもでき、複数のプロセッサのうちの一つでタスクとして実行されるカスタマイズされたアルゴリズムとすることもできる。
本発明の一実施形態によれば、リアルタイムスケジューリングアルゴリズムは、静的値と動的値の2種類の入力値を受け取る。静的入力値は、ハードウェアアーキテクチャに関するものであり、動的入力値は、処理環境(プロセッサ負荷、バス帯域幅、電池レベル、データ依存関係等)の現在の状態に関するものである。
本発明の一実施形態では、オフラインプロファイリングが、異なるタスク処理の各プロセッサによる取り扱いに関する相対的費用対効果に関する統計情報を提供する。この統計情報は、例えば、表形式で提示することができる。このよう表の各エントリは、例えば、各タスククラスのプロファイルデータを含むことができる。プロファイルデータには、例えば、タスククラスや、各プロセッサ上でそのクラスのタスクを実施する際の費用対効果を示す正規化メトリックが含まれる。費用対効果メトリックは、プロセッサ上での実行時間又はエネルギー消費を示す。このメトリックは、基準プロセッサでの対応のメトリックに対して正規化することができる。
一実装形態では、タスクを、異なる粒度レベルに分類することができる。例えば、最も粗い粒度レベルでは、タスクは、MTサブタスク、PTサブタスク、及びETサブタスクとして分類され得る。中程度の粒度レベルでは、タスクは、スタイルシートに関連するサブタスクとして分類され得る(例えば、「スタイルシートAを伴うMTサブタスク」、「スタイルシートAを伴うPTサブタスク(PTサブタスクは、実際には、スタイルシートではなく、ソース文書を構文解析することに留意されたい)」及び「スタイルシートAを伴うETサブタスク」等)。最も細かい粒度レベルでは、タスクは、スタイルシートと文書タイプとの関連で分類され得る(例えば、「タイプTの文書に関するスタイルシートAを伴うMTサブタスク」、「タイプTの文書に関するスタイルシートAを伴うPTサブタスク」、及び「タイプTの文書に関するスタイルシートAを伴うETサブタスク」等)。
一実施形態では、複数のタスク粒度レベルでのプロファイル情報が利用可能である場合に、リアルタイムスケジューリングアルゴリズムは、最も細かいタスク粒度レベルに関連付けられたプロファイル情報を使用する。例えば、汎用のMTサブタスクの情報と、スタイルシートAを伴うMTサブタスクの情報の双方が利用可能である場合に、リアルタイムスケジューリングアルゴリズムは、スタイルシートAを伴うMTサブタスクの情報を選択する。
本発明の一実施形態によれば、リアルタイムスケジューラは、実行可能タスク(すなわち、ブロックされていないタスク)のタスクリストを保持する。アイドル状態の各プロセッサについて、スケジューラは、プロセッサの費用対効果メトリックに基づいて、そのプロセッサにタスクリストからタスクを割り当てる。タスクリストが空でなく、アイドル状態のプロセッサがある場合には、スケジューラは、使用中のプロセッサとそれらが実施しているタスクに注目し、その(プロセッサ、タスク)対のストールカウントを増大させる。
一実施形態では、(プロセッサ、タスク)対のストールカウントを用いて、その(プロセッサ、タスク)対の時間費用対効果メトリックが調整される。かかる調整は、特性のソース文書に起因するスキューに対処する。或いは、タスクに関連付けられるソース文書ノードの位置を用いて、費用対効果メトリックが調整されてもよい。ルートノードから遠く離れたソース文書ノードは、ルートノードに近いノードよりもキャッシュミスを引き起こす可能性が高い。したがって、基準プロセッサより大きいキャッシュを有するプロセッサは、ルートノードから遠く離れたノードに関連付けられるタスクでのより高い費用対効果メトリックを有するべきであり、一方、より小さいキャッシュを有するプロセッサは、より低い費用対効果メトリックを有する。
よって、本発明は、XSL変換サブタスクの処理における文書内並列処理を提供する。その待ち時間(すなわち、文書処理開始から処理終了までの経過時間)を改善しない従来技術の文書間並列処理とは異なり、文書内並列処理は、待ち時間を改善し、したがって、モバイル機器により適切である。
本発明は、XSLT処理の特徴を更に活用して、効率を改善する。このようなXSLT処理の特徴には、スタイルシート別のプロファイリングと、ソース文書構造別のプロファイリングがある。一実施形態では、特定の文書又はノードによって生じるプロファイリング情報中のスキューを動的に調整するために、ストールカウントとノード深さが測定される。
本発明は、以下の詳細な説明と添付の図面を考察すれば、よりよく理解されるものである。
好適な実施の形態の詳細な説明
この詳細な説明では、開示した各実施形態は、例示を目的とするものであり、例えば、全てのプロセッサ又はプロセスが全てのタスククラスを実行することのできるコンピュータシステムに適用可能である。しかしながら、本発明は、それだけに限定されるものではない。本発明は、一部又は全てのコンピュータプロセッサ又はプロセスが特定のタスククラスの実行のためにカスタマイズされるコンピュータシステムにも適用可能である。
本発明の一実施形態によれば、図3に示すように、ステップ301で、複数のプロセッサを備えるコンピュータシステムのプロセッサの一つ(「初期プロセッサ」)で、XSL変換(XSLT)が開始される。ステップ302と303で、それぞれ、ソース文書とスタイルシートが獲得される。この初期プロセッサでスタイルシートがまだロードされていない場合には、スタイルシートがロードされ、前処理される。
ステップ304と305で、(図1に示す)ルート要素構文解析メソッドと(図2に示す)ルート要素変換メソッドがそれぞれ呼び出される。ルート要素構文解析メソッドは、図1にステップ101で開始されるものとして示されており、ステップ102で、ソース文書のルート要素を関連するノードとして有する「構文解析タスク」、即ち「PT」サブタスクを作成する。ステップ103で、作成されたPTサブタスクが、タスクリスト(「XSLTサブタスクリスト」)に入れられる。次いで、ルート要素構文解析メソッドが終了する(ステップ104)。ルート要素変換メソッドは、図2にステップ201で開始されるものとして示されており、ステップ202で、ソース要素のルート要素を関連するノードとして有する「マッチングタスク」、即ち「MT」サブタスクを作成する。また、ステップ202では、「/」文字も、「ノード集合」選択として、XPath式として提供される。次いで、作成されたMTサブタスクがXSLTサブタスクリストに入れられて、ステップ204で、ルート要素変換メソッドが終了する。
ステップ304と305で、ルート要素構文解析メソッドとルート要素変換メソッドを開始した後に、XSLTは、ステップ306で、プロセッサのそれぞれのスケジューラを開始し、XSL変換の残りの実行の制御がこれらのスケジューラに渡される。次いで、ステップ307で、初期プロセッサ上のXSLTが終了する。
XSLTによって各プロセッサで起動されるスケジューラは、ソース文書とスタイルシートの各対に対して、全てのプロセッサについて同じものである。このスケジューラは、ベースラインスケジューラ(例えば、図5に示すスケジューラ)でも、タスクの静的又はオフラインエネルギー消費プロファイル情報を考慮に入れるスケジューラ(例えば、図6に示すスケジューラ)でも、タスクの静的又はオフライン実行時間プロファイル情報を考慮に入れるスケジューラ(例えば、図7に示すスケジューラ)でも、オフラインプロファイル情報と動的プロファイル情報(すなわち、実行時に調整されるプロファイル情報)の双方を考慮に入れるスケジューラであってもよい。図8に、静的プロファイル情報と動的プロファイル情報の双方を考慮に入れるスケジューラを示す。
図5に示すように、ステップ501での開始時に、ベースラインスケジューラが、XSLTサブタスクリストが空であるか否か(ステップ502)と、プロセッサがタスクを実行しているか否か(ステップ503)をチェックする。XSLTサブタスクリストが空であり、全てのプロセッサがアイドル状態である場合に、XSLTは完了され、スケジューラは終了する(ステップ504)。そうではなく、XSLTサブタスクリストは空であるが、一つ以上のプロセッサがタスクを実行している場合に、スケジューラは、所定の期間においてスリープ状態となるか、又はブロックされ(ステップ505)てから、ステップ502に戻って、再度タスクリストを調べる。XSLTサブタスクリストが空でない場合、スケジューラは、ステップ506で、XSLTサブタスクリストからタスクを選択し、リストから除去する。XSLTサブタスクリストは、全てのプロセッサによってアクセスされる共有リソースであるので、好ましくは、XSLTサブタスクリストへの同時の、監視なしのアクセスを防ぐために、相互排他機構(ロック等)が設けられる。次いで、スケジューラは、ステップ507で、選択されたタスクに制御を移す。選択されたタスクが完了すると、ステップ502で、制御がスケジューラに戻される。
この実施形態では、XSLTサブタスクリスト内の各タスクは、(a)PT、MT又はETとすることのできるサブタスク型と、(b)スタイルシートの名前と(この実施形態では、全てのサブタスクに単一のスタイルシートが使用されるので、暗黙的に提供され得る)、(c)関連付けられているソース文書ノードと、(d)サブタスク型が「ET」である場合には、テンプレートの識別情報と、(e)サブタスク型が「MT」である場合には、関連付けられているXSL要素と、を含み得る。サブタスク型フィールド以外に、処理を円滑化するために、その他のフィールドの情報があることが望ましいが、タスクの実行時に求めることができるので、必須ではない。
図6は、プロセッサ上で実行されるスケジューラであって、エネルギー消費プロファイルを考慮に入れてプロセッサ上での実行用のタスクを選択するスケジューラを示している。図5のベースラインスケジューラとは異なり、図6のスケジューラは、エネルギー関連の費用対効果プロファイル情報を含む表608を用いて、XSLTサブタスクリストからサブタスクを選択する。XSLサブタスクリスト上の各サブタスクについて、スケジューラは、サブタスクの記述を用いて、表608のエネルギー関連の費用対効果プロファイル情報からエネルギー関連の費用対効果メトリックを検索する。
以下の表は、エネルギープロファイル表の例である。エネルギープロファイル表の各列は、(a)タスク型(PT、MT又はET)、(b)タスク識別子(ID)、(c)プロセッサID、及び(d)エネルギー消費指数である。
本実施形態では、特徴付けられるタスクを表す幾つかのタスクIDが定義される。あるタスクのタスクIDが表に提供されていない場合、そのタスクは、そのタスク型に関連する「デフォルト」値をとる。ソース文書はスタイルシート(すなわちXSLT文書)より動的であるものとみなされるので、全てのPTは同じデフォルト値を用いることができる。以下の表では、第3列はプロセッサIDを提供しており、本例では「プロセッサ1」と「プロセッサ2」と呼ばれる二つのプロセッサを含むものと仮定している。第4列は、各タスク型とタスクIDについて、対応するタスク型とタスクIDをもつタスクが、二つのプロセッサのそれぞれに対して実行されるときの相対的エネルギー消費率を収集されたプロファイル統計に基づいて表す正規化エネルギー消費指数を提供する。
Figure 0005081149

例えば、プロセスID「PT001」を有するタスクの実行がスケジュールされる場合には、この表がアクセスされる。タスクPT001は表には明確に記載されていないので、デフォルトのPTのタスク型の表エントリが適用可能である。表に示すように、構文解析タスクは、プロセッサ1よりもプロセッサ2でよりエネルギー効率よく実施され(エネルギー消費指数が、プロセッサ1の1に比べて、プロセッサ2では0.3である)、タスクPT001は、プロセッサ2上で実行されるようにスケジュールされる。別の例として、表には、タスクID「MT001」を有するMTタスクの表エントリがある。エネルギー消費指数は、プロセッサ2で実行されるときの(1.2)よりもプロセッサ1で実行されるとき(1)の方が低いため、タスクMT001は、プロセッサ1で実行されるようにスケジュールされる。同様に、MTタスク型のタスクMT002は、プロセッサ2で実行されるようにスケジュールされる。これは、デフォルトの表エントリが、タスクMT002は、プロセッサ2上で実施される方がより効率的であることを示しているからである。
したがって、そのプロセッサで実行する際に最高の費用対効果メトリックを有するサブタスクが選択され(ステップ606)、XSLサブタスクリストから除去される。次いで、プロセッサの制御が、選択されたサブタスクに渡される(ステップ607)。
図7は、プロセッサ条で実行するスケジューラであって、実行時間を考慮に入れてプロセッサでの実行用のタスクを選択するスケジューラを示している。図5のベースラインスケジューラとは異なり、図7のスケジューラは、実行時間関連の費用対効果プロファイル情報を含む表708を用いて、XSLTサブタスクリストからサブタスクを選択する。XSLサブタスクリスト上の各サブタスクについて、スケジューラは、サブタスクの記述を用いて、表608の実行時間関連の費用対効果プロファイル情報から実行時間関連の費用対効果メトリックを検索する。時間関連の費用対効果メトリックは、上記の表のエネルギー消費プロファイルデータと同様の態様で、表で提供することができる(すなわち、正規化エネルギー消費指数の代わりに、正規化実行時間指数を提供することができる)。最高の時間関連の費用対効果メトリックを有するサブタスクがプロセッサでの実行用に選択され(ステップ706)、XSLサブタスクリストから除去される。次いで、プロセッサの制御が、選択されたサブタスクに渡される(ステップ707)。
図8は、オフラインプロファイルとオンラインプロファイル調整の双方を用い、それに関連付けられているプロセッサ上で実行するためのサブタスクを選択するスケジューラを示している。静的、即ちオフラインのプロファイル情報を使ってタスク選択をサポートする図6と図7のスケジューラとは異なり、図8のスケジューラは、ランタイム情報を用いて静的プロファイル情報を調整する。図8に示すように、例えば、ステップ810と811で、関連性を有するエネルギー関連の、又は実行時間関連のプロファイル情報が、各プロセッサに対して選択される。ステップ808と809で、選択されたプロファイル情報が、プロセッサにおける動的条件に対して調整される。例えば、ステップ808で、実行時間関連のプロファイル情報が使用される場合に、サブタスクの費用対効果メトリックを調整するように、(プロセッサ、サブタスク)対に関してストールカウントが保持されてもよい。別の例として、スケジューラは、実行時間関連の、又はエネルギー関連のプロファイル情報が使用される場合に、現在のサブタスクと関連付けられているソース文書内部のノードの深さを調べて(ステップ809)、サブタスクの費用対効果メトリックを調整してもよい。XSLサブタスクリスト上の各サブタスクについて、スケジューラは、サブタスクの記述を用いて、表808内の調整された費用対効果プロファイル情報に基づいて、対応する費用対効果メトリックを検索する。最高の費用対効果メトリックを有するサブタスクがプロセッサでの実行用に選択され(ステップ806)、XSLサブタスクリストから除去される。次いで、プロセッサの制御が選択されたサブタスクに渡される(ステップ807)。
一実施形態において、スケジューラは、(a)電力利用可能性の判定に基づき、もっぱら実行時間関連のプロファイル情報、又はエネルギー関連のプロファイル情報だけを選択的に使用することによって、或いは(b)現在の電力利用可能性、所望のサービス品質メトリック、又はデフォルトの優先度に基づき、二つ以上のプロファイル情報の組の間での動的な選択を行うことによって、動作環境に適合する。この方法は、電力消費と実行時間の動的平衡を維持する。十分な電力が利用可能な場合、この平衡は、実行速度の方に傾いてもよい。逆に、平衡は、電力利用可能性が減少するにつれて、電力消費の方に傾いてもよい。その時々において、実行時間と電力消費の双方の重みつきの組み合わせを使用することができる。
図9は、本発明の一実施形態に従って、MTサブタスクを実行するプロセスを示している。図9に示すように、ステップ902で、図9のプロセスは、MTサブタスクと関連付けられているノード集合のXPath式を評価し始める。ステップ903で、生成されたノード集合内に含まれる各ノードについて、マッチングテンプレートがそのノード用に選択され、変換結果用に空間が予約され、ノードに関連付けられたETサブタスクが作成される。ステップ904で、評価が一部完了している場合(すなわち、MTサブタスクは、まだ完了していない対応のPTサブタスクによって、別のノードがノード集合に追加されると期待する。図10に関連する以下の考察を参照されたい)、MTサブタスクは、これをブロックするPTサブタスクのブロックリストに追加される(ステップ905)。次いで、制御がスケジューラに渡される。ノード集合に一つ以上の新しいノードが追加された後に、ブロック側のPTがMTサブタスクを起動すると、評価がステップ906に進む。ステップ906で、変換結果用に空間が予約され、新しく追加された各ノード用にETサブタスクが作成される。評価は、ノード集合で生成される全てのノードが評価されるまで続く。
図10は、本発明の一実施形態に従って、PTサブタスクを実行するプロセスを示している。図10に示すように、ステップ1001でPTサブタスクが開始される。ステップ2002で、次の構文が、新しい子要素が生じたことを示す「START_ELEMENT」タグである場合、PTサブタスクは、この子要素用の子PTサブタスクを作成する(ステップ1003)。次いで、ステップ1005で、子PTサブタスクの実行を可能にするために、制御が渡される。子PTが完了すると、PTサブタスクは、それ自体をXSLTサブタスクリストに戻し入れ(ステップ1004)、制御をスケジューラに渡す(ステップ1005)。スケジューラが制御をPTサブタスクに戻すと、PTサブタスクは、次の構文が「START_ELEMENT」タグ(ステップ1002)であるか、それとも「END_ELEMENT」タグ(ステップ1006)であるかをチェックする。次の構文が「START_ELEMENT」タグでも「END_ELEMENT」タグでもない場合には、構文解析は完了せず、ステップ1007で次の構文解析が実行される。しかしながら、ステップ1006で、次の構文が「END_ELEMENT」タグである場合、現在のPTサブタスクは完了される。次いで、親PTサブタスクがXMLサブタスクリストに戻され、制御が親PTサブタスクに戻される(ステップ1008)。よって、現在のPTサブタスクは終了する(ステップ1009)。
図11は、本発明の一実施形態に従って、ETサブタスクを実行するプロセスを示している。図11に示すように、ステップ1101で、ETサブタスクが初期設定される。ステップ1102で、要素実行プロセス(フローチャート1150)が呼び出される。フローチャート1150では、ステップ1104で初期設定され、関連するテンプレート内の次の構文が獲得される(ステップ1105)。その次の構文が「END_ELEMENT」タグである場合、評価は完了し、フローチャート1150のプロセスが完了する(ステップ1107)。その後、ステップ1103で、ETサブタスクが完了する。次いで、制御がスケジューラに戻される。
ステップ1106で、次の構文が「END_ELEMENT」タグでない場合、ETサブタスクは、次の構文が「Apply−template」要素であるかどうか調べる(ステップ1108)。次の構文が「Apply−template」要素である場合、変換結果に空間が予約され(ステップ1109)、次いで、この要素用にMTサブタスクが作成される(ステップ1110)。現在のETサブタスクがPTタスク上でブロックされる(すなわち、次の構文が、まだ完了していない実行側PTサブタスクの結果に依存する)場合、ETサブタスクは、そのPTサブタスクのブロックリストに入れられる(ステップ1111)。ETサブタスクが変数へのアクセスを必要とする場合、変数が、それらの値に未解決の依存関係がないかどうか(例えば、いずれかの変数が、まだ完了していない評価から値を受け取るのを待っているかどうか等)を判定するためにチェックされる。ETサブタスクは、要素に依存関係がなくなるまでブロックされる(ステップ1112)。要素評価が可能になると(ステップ1115)、要素が評価される(ステップ1115)。要素の評価後、ETサブタスクは、ステップ1105に戻って、次の構文を取得する。
前述の実施形態では、例として、多重処理システムが、同じメモリアーキテクチャを共用する同一のプロセッサ(すなわち、同じ速度で動作し、同じ電力を消費し、同じローカルキャッシュ構成を有する)を備えるものと仮定している。XPath式を評価する専用ハードウェア評価(「XPathMat」)構成要素を含む全ての機能構成要素のスケジューリングを調整するために、通常は、プロセッサの一つにグローバル制御機能が割り当てられる。各XPathMat構成要素についてスケジューリングアルゴリズムによって考慮される静的入力は、各プロセッサに対して同じである。しかしながら、各プロセッサへの動的入力は、アーキテクチャとシステムソフトウェアの能力に応じて異なっていてもよい。
或いは、プロセッサには、汎用プログラマブルプロセッサと、専用コプロセッサ又はハードウェアブロックの双方が含まれていてもよく、専用コプロセッサ又はハードウェアブロックは、もっぱら特定のXPathMatサブタスクの実行のために設計されており、或いは、XPathMatサブタスクの処理要件と厳密に合致するアーキテクチャ設計を提供するものである。
一実施形態では、汎用プロセッサの一つで実行されるよう割り当てられる、スケジューラの単一のインスタンスが、利用可能なプロセッサ上で実施されるべき全てのサブタスクをスケジュールする役割を果たす。
第3の代替として、ソース文書の文書ツリーがすでに存在するときには、構文解析は不要である。よって、この実施形態では、XSL変換は、文書ツリーを直接獲得し、図1のルート要素構文解析メソッドを呼び出さない。
一実施形態では、各ET又はMTサブタスクは、データ依存関係フラグ(DDF)と関連付けられる。このフラグを設定し、クリアする規則は、以下の通りである。即ち、(a)別のサブタスクによって作成されていないサブタスクは、DDFフラグをクリアして作成される。(b)DDFフラグがクリアされているサブタスクがサブタスクを作成するときには、このサブタスクは、それ自体のDDFフラグを立て、その第1の子サブタスクのDDFフラグをクリアし、他の子サブタスクのDDFフラグを立てる。(c)DDFフラグが立っているサブタスクがサブタスクを作成するときには、その全ての子サブタスクのDDFフラグが立てられる。(d)DDFフラグがクリアされているサブタスクが完了するとき、このサブタスクは、もしあれば、従属サブタスクに「CLEAR」信号を送り、従属サブタスクがなければ、その親タスクに送る。変換プロセスは、サブタスクに親タスクがなくなったときに完了する。サブタスクがCLEAR信号を受け取ると、CLEAR信号は、まだ完了していないその第1の子サブタスクに転送される。
図4は、PTサブタスクP1で構文解析されるルートノードにおけるXSLTプロセスを示すタスクグラフを示している。図4に示すように、ETサブタスクE1、E2、E3、及びE4は、それぞれ、PTサブタスクP2、P5、P3、及びP6から作成される。これらの依存関係は、ソース文書の構造と、関連する一以上のスタイルシートから決定される。例えば、ETタスクE1は、PTタスクP2に依存する。というのは、ETタスクE1の実行時に、E1が、PTタスクP2から提供される情報を必要とし得るからである(例えば、E1は、「ABC」という名前のノードが、P2によって処理されるソース文書の子ノードであるか否かを判定することある)。
以上の詳細な説明は、本発明の具体的な実施形態を説明するために示したものであり、限定することを意図したものではない。本発明の範囲内で多くの変更及び変形が可能である。本発明は、添付の特許請求の範囲で定義される。
本発明の一実施形態に係るルート要素構文解析メソッドを示すフローチャートである。 本発明の一実施形態に係るルート要素変換メソッドを示すフローチャートである。 本発明の一実施形態に係るXSL変換のメソッドを示すフローチャートである。 本発明の一実施形態に係るサブタスクグラフの一例を示す図である。 本発明の一実施形態に係るベースラインスケジューラを示すフローチャートである。 本発明の一実施形態に従って、タスクのエネルギー消費に関連する静的又はオフラインプロファイリング情報を考慮に入れるスケジューラを示すフローチャートである。 本発明の一実施形態に従って、タスクの実行時間に関連する静的又はオフラインプロファイリング情報を考慮に入れるスケジューラを示すフローチャートである。 本発明の一実施形態に従って、静的又はオフラインプロファイル情報と動的プロファイル情報の双方を考慮に入れるスケジューラを示すフローチャートである。 本発明の一実施形態に係るMTサブタスクを実行するプロセスを示す図である。 本発明の一実施形態に係るPTサブタスクを実行するプロセスを示す図である。 の本発明の一実施形態に係るETサブタスクを実行するプロセスを示す図である。

Claims (24)

  1. 複数のプロセッサを備えるコンピュータシステムにおいて構造化文書の変換を並列処理するための方法であって、
    構造化ソース文書とスタイルシートを受け取るステップと、
    前記ソース文書の構造のルートノード用の構文解析タスクを作成し、前記構文解析タスクをタスクリストに置くステップと、
    前記ルートノードの評価タスクを作成し、前記評価タスクを前記タスクリストに置くステップと、
    前記複数のプロセッサの各々でスケジューラを動作させるステップであり、各スケジューラが、前記タスクリストから一度に一つのタスクを、該スケジューラが作動している前記プロセッサによって実行されるように選択し、該スケジューラは、各プロセッサにおける前記タスクのエネルギー消費に関連するプロファイルデータに従って、前記タスクリストから前記タスクを選択する、該ステップと、
    を含み、
    前記スケジューラが、前記プロファイルデータを用いる際に、前記タスクリスト内のタスクと関連付けられている前記ソース文書内部のノードの深さを調べることで該プロファイルデータを調整する、
    方法。
  2. 構文解析タスクの実行が、各子ノード用の構文解析タスクを再帰的に生成し、新しく作成された前記構文解析タスクをタスクリストに置く、請求項1に記載の方法。
  3. 評価タスクの実行が、各テンプレートマッチングステートメント用のマッチングタスクを作成し、新しく作成された前記マッチングタスクをタスクリストに置く、請求項1に記載の方法。
  4. マッチングタスクの実行が、構文解析タスクによって構文解析されるゼロ個以上のノードを、前記スタイルシート内のゼロ個以上のテンプレートにマッチングさせる、請求項3に記載の方法。
  5. 構文解析タスクによって解析されるノードを前記スタイルシート内のテンプレートにマッチングさせ次第、対応する前記ノードを用いて前記テンプレートを評価する評価タスクを作成し、前記評価タスクを前記タスクリストに置くステップを更に備える、請求項4に記載の方法。
  6. 前記スケジューラが、実行時間に関連するプロファイルデータに従って、前記タスクリストから前記タスクを選択する、請求項1に記載の方法。
  7. 前記タスクが、電力利用可能性に従い、実行時間要因とエネルギー消費要因との重み付きの組み合わせに基づいて選択される、請求項1に記載の方法。
  8. 前記スケジューラが、静的プロファイルデータと動的プロファイルデータの双方に従って、前記タスクリストから前記タスクを選択する、請求項1に記載の方法。
  9. 前記動的プロファイルデータが、プロセッサ負荷要因、バス帯域幅要因、電池レベル要因、及びデータ依存関係要因のうちの一つ以上を含む、請求項8に記載の方法。
  10. 前記静的プロファイルデータが、プロファイルデータの表として提供され、前記動的プロファイルデータが、前記プロファイルデータの表内の前記静的プロファイルデータを随時調整するために使用される、請求項8に記載の方法。
  11. 前記タスクリストが、相互排他機構を介してアクセスされる、請求項1に記載の方法。
  12. 前記複数のプロセッサが同一の能力を有する、請求項1に記載の方法。
  13. 前記複数のプロセッサの一部が、XML文書処理用にカスタマイズされたプロセッサを備える、請求項1に記載の方法。
  14. コンピュータシステムにおいて構造化文書の変換を並列処理するための方法であって、
    構造化ソース文書とスタイルシートを受け取るステップと、
    前記ソース文書の構造を構文解析するための構文解析タスクを作成するステップであって、前記構文解析タスクはルートノードに関連付けられたノードセットを提供する、該ステップと、
    前記スタイルシート内の対応するテンプレートを前記ノードセット内の第1のノードにマッチングさせるために第1のマッチングタスクを作成するステップであって、前記第1のマッチングタスクは前記対応するテンプレートを前記第1のノードに適用する評価タスクを作成し、前記評価タスクが第2のテンプレートを検知した場合には、前記評価タスクは、前記第2のテンプレートを前記ノードセット内の第2のノードにマッチングさせる第2のマッチングタスクを作成する、該ステップと、
    を含み、
    スケジューラが、実行時間に関連するプロファイルデータに従って、複数のプロセッサにおける構文解析タスク、マッチングタスク及び評価タスクの実行をタスクリストからスケジュールし、
    前記スケジューラが、前記プロファイルデータを用いる際に、前記タスクリスト内のタスクと関連付けられている前記ソース文書内部のノードの深さを調べることで該プロファイルデータを調整する、
    方法。
  15. 構文解析タスクが、各子ノード用の構文解析タスクを再帰的に生成し、該子ノードを前記ノードセットに含める、請求項14に記載の方法。
  16. マッチングタスクが評価タスクを作成し、評価タスクがマッチングタスクを作成することができるように、前記方法が再帰的に適用可能である、請求項14に記載の方法。
  17. マッチングタスクが、前記構文解析タスクが追加ノードを前記ノードセットに含めることを完了するのを待つためにブロックする、請求項14に記載の方法。
  18. スケジュールされた各タスクが、電力利用可能性に従い、実行時間要因とエネルギー消費要因との重み付きの組み合わせに基づいて選択される、請求項14に記載の方法。
  19. 前記スケジューラが、静的プロファイルデータと動的プロファイルデータの双方に従って、前記タスクリストから前記スケジュールされたタスクを選択する、請求項14に記載の方法。
  20. 前記動的プロファイルデータが、プロセッサ負荷要因、バス帯域幅要因、電池レベル要因、及びデータ依存関係要因のうちの一つ以上を含む、請求項19に記載の方法。
  21. 前記静的プロファイルデータが、プロファイルデータの表として提供され、前記動的プロファイルデータが、前記プロファイルデータの表内の前記静的プロファイルデータを随時調整するために使用される、請求項20に記載の方法。
  22. 前記タスクリストが、相互排他機構を介してアクセスされる、請求項14に記載の方法。
  23. 前記複数のプロセッサが同一の能力を有する、請求項14に記載の方法。
  24. 前記複数のプロセッサの一部が、XML文書処理用にカスタマイズされたプロセッサを備える、請求項14に記載の方法。
JP2008512411A 2005-05-18 2006-05-16 複数のプロセッサを備える機器上でのxslt処理における文書内並列処理をサポートする方法 Active JP5081149B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US68259905P 2005-05-18 2005-05-18
US60/682,599 2005-05-18
US11/231,430 2005-09-20
US11/231,430 US20060265712A1 (en) 2005-05-18 2005-09-20 Methods for supporting intra-document parallelism in XSLT processing on devices with multiple processors
PCT/US2006/018764 WO2006124795A2 (en) 2005-05-18 2006-05-16 Methods for supporting intra-document parallelism in xslt processing on devices with multiple processors

Publications (3)

Publication Number Publication Date
JP2008541302A JP2008541302A (ja) 2008-11-20
JP2008541302A5 JP2008541302A5 (ja) 2009-08-06
JP5081149B2 true JP5081149B2 (ja) 2012-11-21

Family

ID=37431990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008512411A Active JP5081149B2 (ja) 2005-05-18 2006-05-16 複数のプロセッサを備える機器上でのxslt処理における文書内並列処理をサポートする方法

Country Status (3)

Country Link
US (1) US20060265712A1 (ja)
JP (1) JP5081149B2 (ja)
WO (1) WO2006124795A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4525115B2 (ja) * 2004-03-11 2010-08-18 日本電気株式会社 構造化文書処理装置、構造化文書処理方法、および構造化文書処理プログラム
US7925971B2 (en) * 2005-10-31 2011-04-12 Solace Systems, Inc. Transformation module for transforming documents from one format to other formats with pipelined processor having dedicated hardware resources
US20090007115A1 (en) * 2007-06-26 2009-01-01 Yuanhao Sun Method and apparatus for parallel XSL transformation with low contention and load balancing
US7765236B2 (en) * 2007-08-31 2010-07-27 Microsoft Corporation Extracting data content items using template matching
US20090094606A1 (en) * 2007-10-04 2009-04-09 National Chung Cheng University Method for fast XSL transformation on multithreaded environment
US8621475B2 (en) * 2007-12-06 2013-12-31 International Business Machines Corporation Responsive task scheduling in cooperative multi-tasking environments
US8621471B2 (en) * 2008-08-13 2013-12-31 Microsoft Corporation High accuracy timer in a multi-processor computing system without using dedicated hardware timer resources
US8479215B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
US8776066B2 (en) * 2009-11-30 2014-07-08 International Business Machines Corporation Managing task execution on accelerators
US20120005682A1 (en) * 2010-06-30 2012-01-05 International Business Machines Corporation Holistic task scheduling for distributed computing
US9679252B2 (en) 2013-03-15 2017-06-13 Qualcomm Incorporated Application-controlled granularity for power-efficient classification
US9851951B1 (en) * 2013-12-20 2017-12-26 Emc Corporation Composable action flows
US9583116B1 (en) * 2014-07-21 2017-02-28 Superpowered Inc. High-efficiency digital signal processing of streaming media
US9727387B2 (en) * 2014-11-10 2017-08-08 International Business Machines Corporation System management and maintenance in a distributed computing environment
US10754872B2 (en) * 2016-12-28 2020-08-25 Palantir Technologies Inc. Automatically executing tasks and configuring access control lists in a data transformation system
US11416262B1 (en) * 2018-05-22 2022-08-16 Workday, Inc. Systems and methods for improving computational speed of planning by enabling interactive processing in hypercubes
KR102466922B1 (ko) * 2020-01-21 2022-11-15 윤디스크주식회사 문제 은행 변환 방법 및 장치
KR102494927B1 (ko) * 2022-02-24 2023-02-06 리서치팩토리 주식회사 논문 형식 자동 변환 시스템 및 방법
US11972267B2 (en) * 2022-10-04 2024-04-30 International Business Machines Corporation Hibernation of computing device with faulty batteries

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2809962B2 (ja) * 1993-03-02 1998-10-15 株式会社東芝 資源管理方式
EP0683451B1 (en) * 1994-05-09 2004-02-25 Canon Kabushiki Kaisha Power supply control method in multi-task environment
US6940953B1 (en) * 1999-09-13 2005-09-06 Microstrategy, Inc. System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services including module for generating and formatting voice services
WO2001088750A1 (en) * 2000-05-16 2001-11-22 Carroll Garrett O A document processing system and method
US20020069223A1 (en) * 2000-11-17 2002-06-06 Goodisman Aaron A. Methods and systems to link data
US6986066B2 (en) * 2001-01-05 2006-01-10 International Business Machines Corporation Computer system having low energy consumption
US7502996B2 (en) * 2002-02-21 2009-03-10 Bea Systems, Inc. System and method for fast XSL transformation
EP1351117A1 (en) * 2002-04-03 2003-10-08 Hewlett-Packard Company Data processing system and method
WO2003083693A1 (fr) * 2002-04-03 2003-10-09 Fujitsu Limited Planificateur de taches dans un systeme de traitement distribue
JP4004329B2 (ja) * 2002-05-14 2007-11-07 富士通株式会社 Xslt負荷割当装置、xslt負荷割当方法およびその方法をコンピュータに実行させるプログラム
US8032891B2 (en) * 2002-05-20 2011-10-04 Texas Instruments Incorporated Energy-aware scheduling of application execution
US7376733B2 (en) * 2003-02-03 2008-05-20 Hewlett-Packard Development Company, L.P. Method and apparatus and program for scheduling and executing events in real time over a network
US7458022B2 (en) * 2003-10-22 2008-11-25 Intel Corporation Hardware/software partition for high performance structured data transformation
US8166053B2 (en) * 2003-10-30 2012-04-24 Ntt Docomo, Inc. Method and apparatus for schema-driven XML parsing optimization

Also Published As

Publication number Publication date
JP2008541302A (ja) 2008-11-20
WO2006124795A3 (en) 2007-08-23
WO2006124795A2 (en) 2006-11-23
US20060265712A1 (en) 2006-11-23

Similar Documents

Publication Publication Date Title
JP5081149B2 (ja) 複数のプロセッサを備える機器上でのxslt処理における文書内並列処理をサポートする方法
US20100306738A1 (en) Templating system and method for updating content in real time
JP6166371B2 (ja) ドキュメントリソースの使用量の予測
US20080172674A1 (en) Apparatus and method for distributed dataflow execution in a distributed environment
US20090125907A1 (en) System and method for thread handling in multithreaded parallel computing of nested threads
JP2015531925A (ja) ウェブブラウザにおけるスクリプトの事前処理
US9043771B1 (en) Software modification methods to provide master-slave execution for multi-processing and/or distributed parallel processing
US8782674B2 (en) Wait on address synchronization interface
JP5552449B2 (ja) データ分析及び機械学習処理装置及び方法及びプログラム
JP5480034B2 (ja) 構造化文書の木構造を分割するための方法、プログラムおよびシステム
JP6379654B2 (ja) 処理実行プログラム、処理実行方法、及び情報処理装置
US20140196047A1 (en) Computing job management based on priority and quota
US11762687B2 (en) Processing of messages and documents carrying business transactions
Wang et al. A fast work-efficient sssp algorithm for gpus
US8060885B2 (en) Creating task queries for concrete resources using alias selection fields specifying formal resources and formal relationships
US20150012819A1 (en) Template-driven decoration engine
Cerny et al. On energy impact of web user interface approaches
US7908375B2 (en) Transparently externalizing plug-in computation to cluster
US20130179896A1 (en) Multi-thread processing of an XML document
JP2010282347A (ja) 構文解析装置、構文解析方法、及びプログラム
Bhowmik et al. Optimizing XML processing for grid applications using an emulation framework
Hirata et al. Performance Evaluation on Parallel Speculation-Based Construction of a Binary Search Tree
CN114996036A (zh) 信息调用方法、系统及相关装置
CN114020508A (zh) 一种数据处理方法、装置、电子设备及存储介质
US20160316040A1 (en) Providing pipeline for unified service and client interface

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120706

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120828

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120831

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5081149

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250