<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.13 -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC4760 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4760.xml">
<!-- ENTITY USECASES PUBLIC ''
      'https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-geng-rtgwg-cfn-dyncast-ps-usecase-00.xml'-->
]>
<?rfc compact="yes"?>
<?rfc text-list-symbols="o*+-"?>
<?rfc subcompact="no"?>
<?rfc sortrefs="no"?>
<?rfc symrefs="yes"?>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<rfc category="info" docName="draft-du-cats-computing-modeling-description-00"
     ipr="trust200902" submissionType="IETF">
  <front>
    <title abbrev="Computing Information Description in CATS">Computing
    Information Description in Computing-Aware Traffic Steering</title>

    <author fullname="Zongpeng Du" initials=" Z." surname="Du">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street>No.32 XuanWuMen West Street</street>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>duzongpeng@foxmail.com</email>
      </address>
    </author>

    <author fullname="Yuexia Fu" initials="Y." surname="Fu">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street>No.32 XuanWuMen West Street</street>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>fuyuexia@chinamobile.com</email>
      </address>
    </author>

    <author fullname="Cheng Li" initials="C." surname="Li">
      <organization>Huawei Technologies</organization>

      <address>
        <email>c.l@huawei.com</email>
      </address>
    </author>

    <author fullname="Guangping Huang" initials="G." surname="Huang">
      <organization>ZTE</organization>

      <address>
        <email>huang.guangping@zte.com.cn</email>
      </address>
    </author>

    <date day="" month="" year="2023"/>

    <workgroup>CATS</workgroup>

    <abstract>
      <t>This document describes the considerations and the potential
      architecture of the computing information that needs to be notified in
      the network in Computing-Aware Traffic Steering (CATS).</t>
    </abstract>
  </front>

  <middle>
    <section anchor="introduction" title="Introduction">
      <t>Computing-Aware Traffic Steering (CATS) is proposed to support
      steering the traffic among different edge sites according to both the
      real-time network and computing resource status as mentioned in <xref
      target="I-D.yao-cats-ps-usecases"/> and <xref
      target="I-D.yao-cats-gap-reqs"/>. It requires the network to be aware of
      computing resource information and select a service instance based on
      the joint metric of computing and networking. </t>

      <t>In order to generate steering strategies, the modeling of computing
      capacity is required. Different from the network, computing capacity is
      more complex to be measured. For instance, it is hard to predict how
      long will be used to process a specific computing task based on the
      different computing resource. It is hard to calculate and will be
      influenced by the whole internal environments of computing nodes. But
      there are some indicators has been used to describe the computing
      capacity of hardware and computing service, as mentioned in Appendix
      A.</t>

      <t>Based on the related works and the demand of CATS traffic steering,
      this document analyzes the types of computing resources and tasks,
      providing the factors to be considered when modeling and evaluating the
      computing resource capacity. The detailed modeling job of the computing
      resource is not the object of this document.</t>
    </section>

    <section anchor="definition-of-terms" title="Definition of Terms">
      <t>This document makes use of the following terms:</t>

      <t><list hangIndent="2" style="hanging">
          <t hangText="Computing-Aware Traffic Steering (CATS): ">Aiming at
          computing and network resource optimization by steering traffic to
          appropriate computing resources considering not only routing metric
          but also computing resource metric.</t>

          <t hangText="Service:">A monolithic functionality that is provided
          by an endpoint according to the specification for said service. A
          composite service can be built by orchestrating monolithic
          services.</t>

          <t hangText="Service instance:">Running environment (e.g., a node)
          that makes the functionality of a service available. One service can
          have several instances running at different network locations.</t>

          <t hangText="Service identifier:">Used to uniquely identify a
          service, at the same time identifying the whole set of service
          instances that each represents the same service behavior, no matter
          where those service instances are running.</t>

          <t hangText="Service transaction:">Has one or more service request
          that has several flows which require the affinity because of the
          transaction related state.</t>

          <t hangText="Computing Capacity:">The ability of nodes with
          computing resource achieve specific result output through data
          processing, including but not limited to computing, communication,
          memory and storage capacity.</t>
        </list></t>
    </section>

    <section anchor="problemstatement"
             title=" Problem Statement in Computing Resource Modeling">
      <section title="Heterogeneous Chips and Different Computing Types">
        <t>Different heterogeneous computing resources have different
        characteristics. For example, CPUs usually deal with pervasive
        computing and are most widely used. GPUs usually handle parallel
        computing, such as rendering of display tasks, and are widely used in
        artificial intelligence and neural network algorithm computing. FPGA
        and ASIC are usually used to handle customized computing. At the same
        time, different computing tasks need to call different calculation
        types, such as integer calculation, floating-point calculation, hash
        calculation, etc.</t>
      </section>

      <section title="Multi-dimensional Modeling">
        <t>The network and computing have multi-dimensional and hierarchical
        resources, such as cache, storage, communication, etc., and these
        dimensions will affect each other and further affect the overall level
        of computing capacity. Other factors besides the computing itself need
        to be considered in modeling. At the same time, the form of computing
        resources is also hierarchical, such as computing type, chip type,
        hardware type, and converging with the network. For different
        computing forms, such as gateway, all-in-one machine, edge cloud and
        central cloud, the computing capacity, and types provided are also
        different. It is necessary to comprehensively consider
        multi-dimensional and multi-modal resources, and provide multi-level
        modeling according to application demands.</t>
      </section>

      <section title="Support to be used for Further Representation">
        <t>Modeling itself provides a general method to evaluate the
        capacities of computing resource. For CATS, modeling-based computing
        resource representation is the basis for subsequent traffic steering.
        In addition, for different applications, it may be optimized based on
        general modeling methods to establish a set of models that conform to
        their own characteristics, so as to generate corresponding
        representation methods. Moreover, in order to use computing resource
        status more efficiently and protect privacy, modeling for the further
        representation of resource information needs to support the necessary
        simplification and obfuscation.</t>
      </section>
    </section>

    <section title="Usage of Computing Resource Modeling of CATS">
      <section title="Modeling Based on CATS-defined Format">
        <t>Figure 1 shows the case of modeling based on CATS-defined Format.
        CATS provides the modeling format to the computing domain to evaluate
        the computing resource capacity of computing domain and then get the
        result based on the unified interface, which will define the
        properties should be notified to CATS. Then CATS could select the
        specific service instance based on the computing resource and network
        resource status.</t>

        <t>In this way, the CATS domain and computing domain has the relative
        loose boundary based on the situation that the CATS service and
        computing resource belongs to the same provider, CATS could be aware
        of computing resource more or less, depending on the privacy
        preserving demand of the computing domain at the same time. The
        exposed computing capacity includes the static information of
        computing node category/level and the dynamic capabilities information
        of computing node.</t>

        <t>Based on the static information, some visualization functions can
        be implemented on the management plane to know the global view of
        computing resources, which could also help the deployment of
        applications considering the overall distributed status of computing
        and network resource. Based on the dynamic information, CATS could
        steer category-based applications traffic based on the unified
        modeling format and interface.</t>

        <figure anchor="fig-CAN-defined-modeling"
                title="Modeling Based on CATS-defined Format">
          <artwork><![CDATA[                                   |
                        
         CATS Domain               |                     Computing Domain                               
                                                              
+--------+    ---------------------->------------------->  +-------------+                          
|visuali-|                   Modeling Format               |  Computing  |       
|zation  |                         |                       |             | 
+--------+    <--------------------<---------------------  |  Resource   | 
|Traffic |      Static level/category of computing node   |             |          
|Steering|                         |                       |  Modeling   |
+--------+    <--------------------<---------------------  +-------------+ 
                  Dynamic capability of computing node       

                                   |

                                   |]]></artwork>
        </figure>
      </section>

      <section title="Modeling Based on Application-defined Method">
        <t>Figure 2 shows the case of modeling based on application-defined
        method. Computing resource of the specific application evaluates its
        computing capacity by itself, and then notifies the result which might
        be the index of real time computing level to CATS. Then CATS selects
        the specific service instance based on the computing index.</t>

        <t>In this way, the CATS domain and computing domain has the strict
        boundary based on the situation that the CATS service and computing
        resource belongs to the different providers. CATS is just aware of the
        index of computing resource which is defined by application, don't
        know the real status of computing domain, and the traffic steering
        right is potentially controlled under application itself. If CATS is
        authorized by application, it could steer traffic based on network
        status at the same time.</t>

        <figure anchor="fig-APP-defined-modeling"
                title="Modeling Based on Application-defined Method">
          <artwork><![CDATA[                         |                     |                                                     
                         |                     |           
         CATS Domain     |                     |       Computing Domain                               
                         |                     |                
                         |                     |           +-------------+                          
+--------+               |                     |           |  Computing  |       
|Traffic |               |                     |           |             | 
|        |    <---------------------<---------- ---------- |  Resource   | 
|Steering|      dynamic index of computing capacity level  |             |          
+--------+               |                     |           |  Modeling   |
                         |                     |           +-------------+ 
                         |                     |
                         |                     |
                         |                     |
                         |                     |]]></artwork>
        </figure>
      </section>
    </section>

    <section title="Computing Resource Modeling">
      <t>To support a computing service, we need to evaluate the comprehensive
      service performance in a service point, which is influenced by the
      coordination of chip, storage, network, platform software, etc. It is to
      say that the service support capabilities are influenced by
      multidimensional factors. Therefore, in the modeling of the computing
      metric, we can provide not only the specification computing values
      provided by the manufacturer, such as FLOPS, but also some integrated
      index values that can comprehensively reflect the service support
      capabilities.</t>

      <t>We can build up a computing resource modeling system which contains
      three levels of indicators, and the architecture can refer to Appendix
      B.</t>

      <t>The first level is about the heterogeneous hardware computing
      capability. The indexes of this level can be the performance parameters
      provided by the manufacturer, such as CPU model, main frequency, number
      of cores, GPU model, single-precision floating-point performance, etc.
      Meanwhile, the indexes can also be the test values of commonly used
      benchmark programs.</t>

      <t>The second-level indexes are abstracted from the first-level indexes,
      which are mainly used for the comprehensive evaluation of node's
      computing capability. They can provide the ability of a certain aspect
      of the node, such as in the aspect of computing, communication, cache,
      and storage, or a general comprehensive service ability of the node.</t>

      <t>Level 3 indexes are related to the services deployed on the nodes.
      They mainly provide service-related evaluation parameters, such as the
      actual processing throughput that nodes can provide for a specific
      computing service. It can also be a test value, but it is generated by
      running the real service.</t>

      <t/>

      <section title="Consideration of Using in CATS">
        <t>It is assumed that the same service can be provided in multiple
        places in the CATS. In the different service points, it is common that
        they have different kinds of computing resources, and different
        utilization rate of the computing resources.</t>

        <t>In the CATS, the decision point, which should be a node in the
        network, should be aware of the network status and the computing
        status, and accordingly choose a proper service point for the client.
        In fact, the decision would influenced more by the dynamic indexes. An
        example of the decision process is described below.</t>

        <t>Firstly, the decision point needs to make sure the candidate
        service points can still access a new session. If a service point
        claims that it is busy, no packet of new clients should be steered to
        it.</t>

        <t>Secondly, the decision point can select a service point with a
        higher comprehensive performance evaluation value for the service. If
        Level 3 indexes for the service are available in the decision point,
        the decision point can use it directly because it is most
        straightforward. If not, for example the service is not tested in the
        service point yet, Level 2 indicators can be used instead with
        configurable weight values for the four aspects as mentioned in
        Appendix B.</t>

        <t>In this example, the index in the first step is dynamic, and is
        related to the service status. The index in the second step is
        relatively static, and is related to computing efficiency for the
        service.</t>

        <t>For a specific service, more indicators can still be provided. It
        is to say that the computing information could be customized for
        different services. Additionally, besides the computing information,
        the energy consumption index can also be included if it is considered
        necessary when making a decision.</t>

        <t>Therefore, in this example, CATS needs two indexes at least, one
        for the service status, and another for service ability. Optionally,
        other information can also be provided if it is subscribed by the
        decision point. The detailed decision process in the decision point is
        out of scope of this document.</t>
      </section>
    </section>

    <section title="Network Resource Modeling">
      <t>The modeling of the network resource is optional, which depends on
      how to select the service instance and network path. For some
      applications which care both network and computing resource, the CATS
      service provider also need to consider the modeling of network and
      computing together.</t>

      <t>The network structure can be represented as graphs, where the nodes
      represent the network devices and the edges represent the network path.
      It should evaluate the single node, the network links and the E2E
      performance.</t>

      <section title="Consideration of Using in CATS">
        <t>When to consider both the computing and network status at the same
        time, the comprehensive modeling of computing and network might be
        used. For example, to measure all the resource in a unified dimension,
        such as latency, reliability, etc.</t>

        <t>If there is no strict demand of consider them at same time, for
        instance, consider computing status first and then network status.
        CATS could select the service instance at first, then to mark
        identifier for network path selection of network itself. In this
        situation, the network modeling is not that needed. Existing
        mechanisms on the control plane or the management plane in the network
        can be used to obtain the network metrics.</t>
      </section>
    </section>

    <section title="Application Demands Modeling">
      <t>The application is usually composed of several sub service that
      complete different functions, and the service is usually composed of
      several sub transactions, which would be the smallest schedulable
      unit.</t>

      <t>The application always has its own demands for network and computing
      resource, for instance we can see the HD video always requires the high
      bandwidth and the PC game always requires the better GPU and memory.</t>

      <section title="Consideration of Using in CATS">
        <t>The modeling of the application demand is optional, which depends
        on whether the application could tell the demands to the network, or
        what it could tell. Once the CATS knows the application's demand,
        there should be a mapping between application demand and the modeling
        of the computing and/or network resource.</t>
      </section>
    </section>

    <section anchor="security-considerations" title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="iana-considerations" title="IANA Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="acknowledgements" title="Acknowledgements">
      <t>The author would like to thank Thomas Fossati, Dirk Trossen, Linda
      Dunbar for their valuable suggestions to this document.</t>
    </section>

    <section title="Contributors">
      <t>The following people have substantially contributed to this
      document:</t>

      <t><figure>
          <artwork><![CDATA[	Jing Wang
	China Mobile
	wangjingjc@chinamobile.com

	Peng Liu
	China Mobile
	liupengyjy@chinamobile.com

	Wenjing Li 
	Beijing University of Posts and Telecommunications
	wjli@bupt.edu.cn

	Lanlan Rui
	Beijing University of Posts and Telecommunications
	llrui@bupt.edu.cn
]]></artwork>
        </figure></t>
    </section>
  </middle>

  <back>
    <references title="Informative References">
      <?rfc include="reference.I-D.yao-cats-ps-usecases"?>

      <?rfc include="reference.I-D.yao-cats-gap-reqs"?>

      <reference anchor="One-api">
        <front>
          <title>http://www.oneapi.net.cn/</title>

          <author fullname="One-api" surname="">
            <organization/>
          </author>

          <date year="2020"/>
        </front>
      </reference>

      <reference anchor="Amazon">
        <front>
          <title>https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html#available-metrics</title>

          <author fullname="Amaozn" surname="">
            <organization/>
          </author>

          <date year="2022"/>
        </front>
      </reference>

      <reference anchor="Aliyun">
        <front>
          <title>https://help.aliyun.com/?spm=a2c4g.11186623.6.538.34063af89EIb5v</title>

          <author fullname="Aliyun" surname="">
            <organization/>
          </author>

          <date year="2022"/>
        </front>
      </reference>

      <reference anchor="Tencent-cloud">
        <front>
          <title>https://buy.cloud.tencent.com/pricing</title>

          <author fullname="Tencent-cloud" surname="">
            <organization/>
          </author>

          <date year="2022"/>
        </front>
      </reference>

      <reference anchor="cloud-network-edge">
        <front>
          <title>A new edge computing scheme based on cloud, network and edge
          fusion</title>

          <author fullname="cloud-network-edge" surname="">
            <organization>Telecommunication Science</organization>
          </author>

          <date year="2020"/>
        </front>
      </reference>

      <reference anchor="heterogeneous-multicore-architectures">
        <front>
          <title>Towards energy-efficient heterogeneous multicore
          architectures for edge computing</title>

          <author fullname="IEEE access" surname="">
            <organization>IEEE access</organization>
          </author>

          <date year="2019"/>
        </front>
      </reference>

      <reference anchor="ARM-based">
        <front>
          <title>A heterogeneous CPU-GPU cluster scheduling model based on
          ARM</title>

          <author fullname="Software Guide" surname="">
            <organization>Software Guide</organization>
          </author>

          <date year="2017"/>
        </front>
      </reference>
    </references>

    <section title="Related Works on Computing Capacity Modeling">
      <t/>

      <t>Some related work has been proposed to measurement and evaluate the
      computing capacity, which could be the basis of computing capacity
      modeling.</t>

      <t><xref target="cloud-network-edge"/> proposed to allocate and adjust
      corresponding resources to users according to the demands of computing,
      storage and network resources.</t>

      <t><xref target="heterogeneous-multicore-architectures"/> proposed to
      design heterogeneous multi-core architectures according to different
      customization, such as CPU microprocessors with ultra-low power
      consumption and high code density, low power microprocessor with FPU,
      and a high-performance application processor with FPU and MMU support
      based on a completely unordered multi problem architecture.</t>

      <t><xref target="ARM-based"/> proposed the cluster scheduling model that
      is combined with GPU virtualization and designed a hierarchical cluster
      resource management framework, which can make the heterogeneous CPU-GPU
      cluster be effectively used.</t>

      <t>The hardware cloud service providers have also disclosed their
      parameter indicators for computing services:</t>

      <t><xref target="One-api"/> provides a collection of programming
      languages and cross architecture libraries across different
      architectures, to be compatible with heterogeneous computing resources,
      including CPU, GPU, FPGA, and others. <xref target="Amazon"/> uses the
      computing resource parameters when evaluating the performance, including
      the average CPU utilization, average number of bytes received and sent
      out, and average application load balancer. Alibaba cloud <xref
      target="Aliyun"/> gives the indicators including vcpu, memory, local
      storage, network basic and burst bandwidth capacity, network receiving
      and contracting capacity, etc., when providing cloud servers service.
      <xref target="Tencent-cloud"/> uses vcpu, memory (GB), network receiving
      and sending (PPS), number of queues, intranet bandwidth capacity (Gbps),
      dominant frequency, etc.</t>

      <t/>
    </section>

    <section title="Architecture of Computing Modeling">
      <t>This Appendix describes the potential architecture of computing
      resource modeling, regardless of any ways of the further usage of
      traffic steering of CATS, neither of the usage ways described in Section
      4.</t>

      <t>According to the computing indicators and related work described in
      Section 2, computing capacity includes the types of computing resources
      and tasks, and also need to consider multi-dimensional capabilities such
      as communication, memory, and storage. Because every factor will affect
      each others. For instance, with the rapid growth of modern computer CPU
      performance, the communication bottleneck between CPU and cache has
      become increasingly prominent. Moreover, the storage capacity greatly
      affects the processing speed of a computer. So the architecture of
      computing capacity modeling could be seen in Figure 3.</t>

      <t/>

      <figure anchor="fig-computing-modeling-architecture"
              title="Referecen Architecture of Computing Modeling Format">
        <artwork><![CDATA[                                                  
                                                           +-------+      +-------+
                                                        +--|  CPU  |  +---|  GPU  |
                                       +-------------+  |  +-------+  |   +-------+
                                       |    Chips    |--+-------------+   
                                    +--|  Category   |  |  +-------+  |   +-------+   
                                    |  +-------------+  +--| FPGA  |  +---|  ASIC |           
                   +-------------+  |                      +-------+      +-------+              
                   |  Computing  |--+                            
                +--|  Capacity   |--+                      +----------------------+
                |  +-------------+  |                   +--|  intCalculationRate  |  
                |  +-------------+  |  +-------------+  |  +----------------------+
                +--|Communication|  +--|  Computing  |  |  +----------------------+
+-------------+ |  |  Capacity   |     |    Types    |--+--| floatCalculationRate |
|  Computing  | |  +-------------+     +-------------+  |  +----------------------+
|  Resource   |-+  +-------------+                      |  +----------------------+ 
|  Modeling   | |  |   Cache     |                      +--|  hashCalculationRate |
+-------------+ +--|  Capacity   |                         +----------------------+
                |  +-------------+     
                |  +-------------+ 
                +--|  Storage    |
                   |  Capacity   |
                   +-------------+ ]]></artwork>
      </figure>

      <section title="Computing Capacity">
        <t>The computing capacity includes the chips category and computing
        types. Common chip types include CPU, GPU, FPGA and ASIC. CPU and GPU
        belong to von Neumann structure, with instruction decoding and
        execution and shared memory. According to the different
        characteristics and requirements of computing programs, the computing
        performance can be divided into integer computing performance,
        floating-point computing performance and hash computing
        performance.</t>

        <section title="Types of Chips">
          <t>CPU (Central Processing Unit) is a general-purpose processor
          needs to be able to handle comprehensive and complex tasks, as well
          as the synchronization and coordination between tasks. Therefore, a
          lot of space is required on the chip to perform branch prediction
          and optimization and save various states to reduce the delay during
          task switching. This also makes it more suitable for logic control,
          serial operation and universal type data operation.</t>

          <t>GPU (Graphics Processing Unit) has a large-scale parallel
          computing framework composed of thousands of smaller and more
          efficient Alu cores. Most transistors are mainly used to build
          control circuits and caches, and the control circuits are relatively
          simple.</t>

          <t>FPGA (Field Programmable Gate Array) is essentially an
          architecture without instructions and shared memory, which is more
          efficient than GPU and CPU. The main advantage of FPGA in data
          processing tasks is its stability and extremely low latency, which
          is suitable for streaming computing intensive tasks and
          communication intensive tasks.</t>

          <t>ASIC (Application Specific Integrated Circuit) is a special
          integrated circuit, and its performance is actually better than
          FPGA. However, for customized customers, its cost is much higher
          than FPGA.</t>

          <t>On this basis, according to different computing task
          requirements, chip manufacturers have also developed various "xpus",
          including APU (Accelerated Processing Unit), DPU (Deep-learning
          Processing Unit), TPU (Tensor Processing Unit), NPU (Neural-network
          Processing Unit) and BPU (Brain Processing Unit), which are made
          based on the CPU, GPU, FPGA and ASIC.</t>
        </section>

        <section title="Type of Computing">
          <t>At present, the computing type in computer mainly includes
          integer calculation, floating-point calculation, and hash
          calculation.</t>

          <t>The integer calculation rate is expressed as the calculation rate
          of the integer data operation benchmark program running on the CPU.
          Integer computing capability has its specific application scenarios,
          such as discrete-time processing, data compression, search, sorting
          algorithm, encryption algorithm, decryption algorithm, etc.</t>

          <t>Floating point calculation rate is expressed as the calculation
          rate of the floating-point data operation benchmark program running
          on the CPU. There are many kinds of benchmark programs, each of
          which can reflect the floating-point computing performance of nodes
          from different aspects.</t>

          <t>The hash calculation rate refers to the output speed of the hash
          function when the computer performs intensive mathematical and
          encryption related operations. For example, in the process of
          obtaining bitcoin through "mining", how many hash collisions can a
          mining machine do per second, and the unit is hash/s.</t>
        </section>

        <section title="Relation of Computing Types and Chips">
          <t>The differences computing capacity of the above different chip
          types is summarized as figure 4 shows. CPU is good at
          intCalculation, GPU and FPGA are good at floatCalculation, and ASIC
          is good at intCalculation.</t>

          <figure align="center" title="Relation of Computing Types and Chips">
            <artwork type="ascii-art"><![CDATA[
+-----+------------------+------------------+------------------+
|     |  intCalculation  | floatCalculation |  hashCalculation |
+-----+------------------+------------------+------------------+
| CPU |        good      |      Ordinary    |      Ordinary    |
+-----+------------------+------------------+------------------+
| GPU |      Ordinary    |        good      |      Ordinary    |
+-----+------------------+------------------+------------------+
| FPGA|      Ordinary    |        good      |      Ordinary    |
+-----+------------------+------------------+------------------+
| ASIC|      Ordinary    |        good      |        good      |
+-----+------------------+------------------+------------------+
]]></artwork>
          </figure>
        </section>
      </section>

      <section title="Communication, Cache and Storage Capacity">
        <t>Besides the computing capacity, the communication, cache, and
        storage capacity should also be considered because each of them can
        potentially influence the comprehensive capacity of computing resource
        nodes.</t>

        <t>The communication capacity is the external communication rate of
        computing nodes. From the point of view of a single node, the
        communication capability indicator of a node mainly includes the
        network bandwidth. Moreover, it is often to have cluster of service
        instances for one task (like Hadoop architecture). Therefore the
        network capacity among those instances are also important factor in
        assessing the capability of the cluster of the service nodes for one
        task.</t>

        <t>The cache(memory) capacity describers the amount of of the cache
        unit on a node. The memory (CACHE) indicator mainly includes the
        cache(memory) capacity and cache(memory) bandwidth.</t>

        <t>The storage capacity is the external storage (for example, hard
        disk) of the computing node. The storage indicators of a node mainly
        includes the storage capacity, storage bandwidth, operations per
        second (IOPs) and response time of the node.</t>
      </section>

      <section title="Comprehensive Computing Capability Evaluation">
        <t>Based on the architecture of computing resource modeling, this
        Section proposes the comprehensive performance evaluation methods
        based on the vectors to represent each capability of computing,
        communication, cache, and storage.</t>

        <t>Figure 5~8 shows the vector of computing node(i) including each
        aspects.</t>

        <figure align="center" title="Computing Performance Vector">
          <artwork type="ascii-art"><![CDATA[     +-                         -+
A(i)=|   Computing Capacity(i)   |
     +-                         -+]]></artwork>
        </figure>

        <figure align="center" title="Comunication Performance Vector">
          <artwork type="ascii-art"><![CDATA[     +-                         -+
B(i)=|  Communication Capacity(i) |
     +-                         -+]]></artwork>
        </figure>

        <figure align="center" title="Cache Performance Vector">
          <artwork type="ascii-art"><![CDATA[     +-                        -+
C(i)=|     Cache Capacity(i)    |
     +-                        -+]]></artwork>
        </figure>

        <figure align="center" title="Storage Performance Vector">
          <artwork type="ascii-art"><![CDATA[     +-                         -+
D(i)=|    Storage Capacity(i)    |
     +-                         -+]]></artwork>
        </figure>

        <t>The vector of computing capacity, communication capacity, cache
        capacity and storage capacity could be further weighted to a
        comprehensive vector.</t>

        <figure align="center" title="Comprehensive Vector">
          <artwork type="ascii-art"><![CDATA[V = aA+bB+cC+dD ]]></artwork>
        </figure>

        <t>Where, a, b, c and d are the weight coefficients corresponding to
        the evaluation indicators of computing capacity, communication
        capacity, cache capacity and storage capacity respectively, and
        a+b+c+d=1.</t>
      </section>
    </section>
  </back>
</rfc>
